题目
给定一个二叉树,返回它的中序 遍历。
思路
我们先递归遍历根节点的左树节点,得到所有节点的值,再递归得到根节点的值,再递归遍历根节点的右树节点,得到所有节点的值。
代码如下:
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<>();
if (root == null) {
//如果树为 null,直接返回 result
return result;
}
//1.先递归遍历根节点的左树节点,得到所有节点的值
result.addAll(inorderTraversal(root.left));
//2.再递归得到根节点的值
result.add(root.val);
//3.再递归遍历根节点的右树节点,得到所有节点的值
result.addAll(inorderTraversal(root.right));
return result;
}
}