树的遍历对于学习递归及树的算法有很强的指导作用,今天我们一起来学习一下吧!

递归方法

递归方法有两个重要的点,即基本情况递推关系。因此我们考虑使用递归时,可以这样问自己:①数据的规模可以缩小吗?②当缩小到什么规模可以退出?

算法描述

  1. 去遍历左子树
  2. 将根节点的值放入列表中
  3. 去遍历右子树
  4. 直到根节点为空,返回空集合

    实现

    1. class Solution {
    2. private List<Integer> list = new LinkedList<>();
    3. public List<Integer> inorderTraversal(TreeNode root) {
    4. if (root == null){
    5. return new LinkedList<>();
    6. }
    7. inorderTraversal(root.left);
    8. list.add(root.val);
    9. inorderTraversal(root.right);
    10. return list;
    11. }
    12. }