- 二叉树的中序遍历
给定一个二叉树的根节点 root ,返回它的 中序 遍历。
示例 1:
输入:root = [1,null,2,3]
输出:[1,3,2]
示例 2:
输入:root = []
输出:[]
示例 3:
输入:root = [1]
输出:[1]
示例 4:
输入:root = [1,2]
输出:[2,1]
首先我们需要了解什么是二叉树的中序遍历:按照访问左子树——根节点——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候我们按照同样的方式遍历,直到遍历完整棵树。因此整个遍历过程天然具有递归的性质,我们可以直接用递归函数来模拟这一过程。
class Solution {
public List inorderTraversal(TreeNode root) {
List res = new ArrayList<>();
inorder(root,res);
return res;
}
public void inorder(TreeNode root, List res) {
if (root == null) {
return;
}
//左子树找到底
inorder(root.left, res);
//添加中间节点
res.add(root.val);
//右子树
inorder(root.right, res);
}
}



