用golang刷leetcode 530题,出现一个问题。求大神们看看

cyxr001 · · 1411 次点击
抱歉,我前面说的有点问题,确实是指针传值,重点在![image.png](https://static.studygolang.com/190822/d7cdf578665d61d2ccdac7e0e0e6affe.png) 这个指针赋值上,当你将4这个节点赋值给pre的时候,pre的指针已经不是前面的指针了,这时候的pre其实已经是和root是同一个指针了,就不再是前面你所认为的那个指针了,指针操作需谨慎,你好好体会(前面那个回答习惯性java思维了,见谅,见谅)
#4
更多评论
你这个明显有问题,参数 *TreeNode只是传值,你第一次左侧递归到pre = root,将pre赋值为4的时候,由于是传值,递归回溯的时候上层pre还是空值,就是当root回溯到根节点时![image.png](https://static.studygolang.com/190822/b49a850cd913b6381e270efbb8e7842b.png) 第一步这里根本没有改变pre的值,所以第二步这里的判断pre应该是空,不会进入if语句块进行5-4的操作,整个流程中应该只有一次进入这个语句块7-5(不信的话你可以debug在这打个断点,看看有几次进入),所以结果是2
#1
xmge
欲戴王冠 必承其重
有次面试,golang面试。没有问过golang相关的任何问题。
#2