初级会员
  • 第 21711 位会员
  • HN-JIE
  • 2018-08-14 17:21:18
  • Offline
  • 19 80

最近发布的主题

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 评论了主题 华为云 NoSQL 招聘
    #5 @kk9102 但是还是德科吧
  • 评论了主题 华为云 NoSQL 招聘
    德科还是正式编
  • 卡住是指什么,就代码看来,你这个会一直在for input.Scan() {}里面出不来
  • 抱歉,我前面说的有点问题,确实是指针传值,重点在![image.png](https://static.studygolang.com/190822/d7cdf578665d61d2ccdac7e0e0e6affe.png) 这个指针赋值上,当你将4这个节点赋值给pre的时候,pre的指针已经不是前面的指针了,这时候的pre其实已经是和root是同一个指针了,就不再是前面你所认为的那个指针了,指针操作需谨慎,你好好体会(前面那个回答习惯性java思维了,见谅,见谅)
  • 你这个明显有问题,参数 *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