二叉树的递归遍历

本贴最后更新于 1723 天前,其中的信息可能已经事过境迁

二叉树遍历

前序遍历

static List<Integer> list = new ArrayList<>();   
  
    //前序遍历   
    public  static List<Integer> preorderTraversal(TreeNode root) {   
  
        if(root == null)   
        {   
            return null;   
        }   
        list.add(root.val);   
        preorderTraversal(root.left);   
        preorderTraversal(root.right);   
        return list;   
    }  

中序遍历

static List<Integer> list = new ArrayList<>();   
  
    //中序遍历   
    public  static List<Integer> midorderTraversal(TreeNode root) {   
  
        if(root == null)   
        {   
            return null;   
        }   
        midorderTraversal(root.left);   
        list.add(root.val);   
        midorderTraversal(root.right);   
        return list;   
    }  

后序遍历

public  static List<Integer> BhorderTraversal(TreeNode root) {   
  
        if(root == null)   
        {   
            return null;   
        }   
  
        BhorderTraversal(root.left);   
        BhorderTraversal(root.right);   
        list.add(root.val);   
        return list;   
    }  

其实这三个遍历差不多,只是 list 的添加元素的代码位置不一样
所谓的前序,中序,后序就是中间节点的位置

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...