美文网首页
树的遍历

树的遍历

作者: FIRE_d559 | 来源:发表于2018-08-31 11:09 被阅读0次

    1、利用递归的方式获取树的前序遍历结果

     //获取树的前序遍历
    public static String preTraver(TreeNode root){
        if (root!=null) {
            re += root.val;
            if (root.left != null)
                preTraver(root.left);
            if (root.right != null)
                preTraver(root.right);
        }
        return re;
    }
    

    2、 利用递归的方式获取树的中序遍历结果

        //获取树的中序遍历
    public static String medTraver(TreeNode root){
        if (root!=null) {
            if (root.left != null)
                medTraver(root.left);
            re += root.val;
            if (root.right != null)
                medTraver(root.right);
        }
        return re;
    }
    

    3、利用递归的方式获取树的后序遍历结果

    //获取树的后序遍历
    public static String aftTraver(TreeNode root){
        if (root!=null) {
            if (root.left != null)
                preTraver(root.left);
            if (root.right != null)
                preTraver(root.right);
            re += root.val;
        }
        return re;
    }
    

    4、利用队列实现层次遍历

    //获取树的层次遍历
    public static String levelTraver(TreeNode root){
        Queue<TreeNode> queue = new ArrayDeque<TreeNode>();
        TreeNode node;
     if (root!=null)
         queue.offer(root);
     while (!queue.isEmpty()){
         node=queue.poll();
         re+=node.val;
         if (node.left!=null)
             queue.offer(node.left);
         if (node.right!=null)
             queue.offer(node.right);
     }
        return re;
    }
    

    0     1    2     3    4     5    6     7    8     9    10     11    12     13    14     15    16     17    
    18     19    20     21    22     23    24     25    26     27    28     29    30     31    32     33    34     35    
    36     37    38     39    40     41    42     43    44     45    

    <center>Coding Blog     Github Blog </center>

    相关文章

      网友评论

          本文标题:树的遍历

          本文链接:https://www.haomeiwen.com/subject/bjvdwftx.html