Leetcode 144 二叉树先序遍历
int* resSize 与 int resSize[] 可以看作等价,那么在 res[(*resSize)++] = root->val; 中为什么数组又嵌了一个数组,这句应该怎么理解?
还有为什么他要一个returnSize表示长度?
谢谢!
![](https://profile-avatar.csdnimg.cn/78f3e6bc743348999fc578db42a2824c_weixin_73136093.jpg!4)
二叉树先序遍历 代码的意思
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 社区专家-Monster-XH 2023-05-16 00:11关注
基于Monster 组和GPT的调写:
- 在这段代码中,
res
是存储结果的数组,而resSize
是用来表示结果数组的长度的变量。
resSize
在这里是一个指向整数的指针,因为我们需要在递归的过程中不断更新结果数组的长度。(*resSize)++
的作用是将当前节点的值存入结果数组中,并且将resSize
的值加一,表示数组长度增加了一个元素。
- 你可能会疑惑为什么不直接使用
int resSize
而要用指针形式int* resSize
。这是因为在递归的过程中,我们需要在不同的层级上共享同一个变量,以便能够正确地更新结果数组的长度。如果使用普通的int
变量,每次递归调用时都会创建一个新的局部变量,无法在不同层级之间共享值。
- 至于
returnSize
,它是一个指向整数的指针,用来表示结果数组的长度。在preorderTraversal
函数中,我们通过*returnSize = 0
初始化结果数组的长度为 0。然后,在preorder
函数中,每次将节点的值存入结果数组后,都会通过(*resSize)++
更新returnSize
的值,最终得到结果数组的正确长度。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用 - 在这段代码中,
悬赏问题
- ¥15 这种情况的伯德图和奈奎斯特曲线怎么分析?
- ¥50 paddleocr带斜线的0很容易识别成9
- ¥15 电子档案元素采集(tiff及PDF扫描图片)
- ¥15 flink-sql-connector-rabbitmq使用
- ¥15 zynq7015,PCIE读写延时偏大
- ¥15 使用spss做psm(倾向性评分匹配)遇到问题
- ¥20 vue+UEditor附件上传问题
- ¥15 想做个WPS的自动化代码,不知道能做的起不。
- ¥15 uniApp,生成安卓安卓包后,黑暗主题中间内容不生效,底部导航正常
- ¥15 斯坦福自动漂移非线性模型反解