给定一个二叉树的根节点 root ,返回它的 中序 遍历。
示例 1:
输入:root = [1,null,2,3]
输出:[1,3,2]
示例 2:
输入:root = []
输出:[]
示例 3:
输入:root = [1]
输出:[1]
示例 4:
输入:root = [1,2]
输出:[2,1]
示例 5:
输入:root = [1,null,2]
输出:[1,2]
提示:
树中节点数目在范围 [0, 100] 内
-100 <= Node.val <= 100
进阶: 递归算法很简单,你可以通过迭代算法完成吗
/**
* Definition for a binary tree node.
* public 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 {
ArrayList<Integer> result = new ArrayList();
public List<Integer> inorderTraversal(TreeNode root) {
dfs(root);
return result;
}
public void dfs(TreeNode root){
if(root!=null){
dfs(root.left);
result.add(root.val);
dfs(root.right);
}
}
}
该博客介绍了如何使用深度优先搜索(DFS)策略,以递归方式实现二叉树的中序遍历。提供了Java代码示例,展示了从根节点开始,先遍历左子树,然后访问根节点,最后遍历右子树的过程。适用于理解二叉树遍历和递归算法的应用。
1200

被折叠的 条评论
为什么被折叠?



