二叉树的递归遍历

二叉树遍历

前序遍历

static List<Integer> list = new ArrayList<>();   
//前序遍历   
public  static List&lt;Integer&gt; 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&lt;Integer&gt; 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的添加元素的代码位置不一样
所谓的前序,中序,后序就是中间节点的位置


今日诗词
posted @ 2023-02-02 08:50  兔子春  阅读(6)  评论(0编辑  收藏  举报