二叉树的遍历 LeetCode 144和94|刷题打卡

86 阅读1分钟

题目1

题目2

概念:

前序遍历:跟-->左-->右

中序遍历:左-->跟-->右

后序遍历:左-->右-->跟

题解:套递归的模板

模板

public List<Integer> preorderTraversal(TreeNode root) {
    List<Integer> ans = new ArrayList<>();
    if(root==null){
        return ans;
    }
    dfs(root, ans);
    return ans;

}
private void dfs(TreeNode root, List<Integer> ans) {
    //前
    //ans.add(root.val);
    if(root.left != null) {
        dfs(root.left, ans);
    }
    //中
    //ans.add(root.val);
    if (root.right != null) {
        dfs(root.right, ans);
    }
    //后
    //ans.add(root.val);
}

前序

public List<Integer> preorderTraversal(TreeNode root) {
    List<Integer> ans = new ArrayList<>();
    if(root==null){
        return ans;
    }
    dfs(root, ans);
    return ans;

}
private void dfs(TreeNode root, List<Integer> ans) {
    ans.add(root.val);
    if(root.left != null) {
        dfs(root.left, ans);
    }
    if (root.right != null) {
        dfs(root.right, ans);
    }
}

中序

public List<Integer> preorderTraversal(TreeNode root) {
    List<Integer> ans = new ArrayList<>();
    if(root==null){
        return ans;
    }
    dfs(root, ans);
    return ans;

}
private void dfs(TreeNode root, List<Integer> ans) {
    if(root.left != null) {
        dfs(root.left, ans);
    }
    ans.add(root.val);
    if (root.right != null) {
        dfs(root.right, ans);
    }
}

备注

本文正在参与「掘金 2021 春招闯关活动」, 点击查看