题目描述
给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。
方法1
描述
按照访问左子树——根节点——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候我们按照同样的方式遍历,直到遍历完整棵树。
因此整个遍历过程天然具有递归的性质,我们可以直接用递归函数来模拟这一过程。
代码
package easy.二叉树的中序遍历94;
import java.util.ArrayList;
import java.util.List;
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {
}
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
dfs(root, res);
return res;
}
public void dfs(TreeNode root, List<Integer> res) {
if(root == null) return;
if(root.left != null) dfs(root.left,res);
res.add(root.val);
if(root.right != null) dfs(root.right,res);
}
}