leetcode99题Rocover Binary search tree
老师您好leetcode这道题我看了您的第一个solution
但是我不太明白原理是什么 还有为什么题目要改变一个树 但是code里面就改变一下 list的位置就好了 做这种题的解题思路应该 是怎样的谢谢
11
收起
正在回答 回答被采纳积分+1
1回答
liuyubobobo
2021-08-07 06:43:30
“为什么题目要改变一个树 但是code里面就改变一下 list的位置就好了?”
list 中存的是树中每一个节点的引用,改变引用,原来树中的相应节点就会发生改变。他们指向的是同一个内存地址。
这个代码的整体思路是:
1)首先中序遍历整个树。如果整个树是正确的 BST,中序遍历的结果应该是有序的。
2)但现在有两个节点的元素是错误的,在这两个节点的位置,一定是反序的,即:list.get(i - 1).val > list.get(i).val
3)找到这两个节点(a 和 b),交换着两个节点的 val 即可。
继续加油!:)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星