You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode 94二叉树中序遍历:TreeNode与数组输入的疑问

LeetCode 94二叉树中序遍历疑问解答

1. 传入辅助函数的root是如何构造成二叉树的?

LeetCode后台会自动把你输入的数组格式测试用例转换成TreeNode实例组成的二叉树。举个例子,如果你输入[1,null,2,3],后台会按以下逻辑构建:

  • 先创建根节点TreeNode(1)
  • 处理数组后续元素,将null视为空节点,给根节点的right属性赋值为TreeNode(2)
  • 再给节点2的left属性赋值为TreeNode(3)
    整个过程通过递归或队列(层次遍历)完成,最终得到的root就是这棵树的根节点对象。

2. path函数中的node为何不是数组却拥有left、right属性?

因为你代码里接收的root参数本身就是TreeNode类的实例,不是数组。LeetCode后台已经帮你完成了数组到TreeNode树结构的转换,所以递归时传入的node自然是TreeNode对象,自带val、left、right这些属性——不需要你显式调用TreeNode构造函数,后台已经替你做了这件事。

3. 数组形式下的索引规则,为何代码里不用传索引?

数组里的索引规则是从数组构建二叉树的逻辑,而这个构建过程是LeetCode后台完成的。后台会用层次遍历(BFS)的方式,借助队列把数组元素转换成一个个TreeNode节点,并且把父节点和子节点的关系转换成对象引用(比如父节点的left直接指向左子节点对象)。所以你的代码拿到的是已经构建好的树,每个节点的left/right已经直接指向对应的子节点,不需要你再通过索引去计算,直接访问属性即可。


内容的提问来源于stack exchange,提问作者Edris Elbow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:22:07