树的遍历对于学习递归及树的算法有很强的指导作用,今天我们一起来学习一下吧!
递归方法
递归方法有两个重要的点,即基本情况与递推关系。因此我们考虑使用递归时,可以这样问自己:①数据的规模可以缩小吗?②当缩小到什么规模可以退出?
算法描述
- 去遍历左子树
- 将根节点的值放入列表中
- 去遍历右子树
- 直到根节点为空,返回空集合
实现
class Solution {private List<Integer> list = new LinkedList<>();public List<Integer> inorderTraversal(TreeNode root) {if (root == null){return new LinkedList<>();}inorderTraversal(root.left);list.add(root.val);inorderTraversal(root.right);return list;}}
