二叉树递归遍历

递归三部曲

使用递归遍历二叉树,按照如下三步顺序:

  • 确定递归函数的参数和返回值
  • 确定终止条件
  • 确定单层递归的逻辑

参考代码

前序递归遍历

class Solution {
   
    public List<Integer> preorderTraversal(TreeNode root) {
   
        List<Integer> ret = new ArrayList<>();
        preorder(root, ret);
        return ret;
    }

    // 前序递归遍历
    public void preorder(TreeNode head, List<Integer> list) {
   
        if(head == null) {
   
            return;
        }
        list.add(head.val);
        preorder(head.left, list);
        preorder(head.right, list);
    }
}

中序递归遍历

class Solution {
   
    public List<Integer> inorderTraversal(TreeNode root) {
   
        List<Integer> ans = new ArrayList<>();
        inorder(root, ans);
        return ans;
    }

    // 中序递归遍历
    public void inorder(TreeNode head, List<Integer> list) {
   
        if(head == null) {
   
            return;
        }
        inorder(head.left, list);
        list.add(head.val);
        inorder(head.right, list);
    }
}

后序递归遍历

class Solution {
   
    public List<Integer> postorderTraversal(TreeNode root) {
   
        List<Integer> ans = new ArrayList<>();
        postorder(root, ans);
        return ans;
    }

    // 后序递归遍历
    public void postorder(TreeNode head, List<Integer> list) {
   
        if(head == null) {
   
            return;
        }
        postorder(head.left, list);
        postorder(head.right, list);
        list.add(head.val);
    }
}

相关推荐

  1. 2024-02-07 22:00:02       37 阅读
  2. (法)

    2024-02-07 22:00:02       32 阅读
  3. 每日一题

    2024-02-07 22:00:02       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 22:00:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 22:00:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 22:00:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 22:00:02       20 阅读

热门阅读

  1. JVM——一个神圣的话题,可远观而不可亵玩焉

    2024-02-07 22:00:02       37 阅读
  2. 社群团购有没有销量,到底需要不需要做呢?

    2024-02-07 22:00:02       32 阅读
  3. TCP和UDP相关问题(重点)(1)

    2024-02-07 22:00:02       29 阅读
  4. leetcode | 杨辉三角 | 电话号码配对

    2024-02-07 22:00:02       38 阅读
  5. 代码随想录算法训练营29期Day38|LeetCode 509,70,746

    2024-02-07 22:00:02       32 阅读
  6. LabVIEW高精度主动模拟肺系统的开发与应用

    2024-02-07 22:00:02       35 阅读
  7. c++ system解释

    2024-02-07 22:00:02       35 阅读
  8. 安装flash-attention失败的终极解决方案

    2024-02-07 22:00:02       30 阅读
  9. Docker面试题2024

    2024-02-07 22:00:02       26 阅读