//感想:对于二叉树的递归一定要搞清楚每一步的递归究竟要做什么,每一步做好,每一层都是如此,往下走的时候做,还是回溯的时候做,都要思考清楚,递归结束的条件是什么,还有返回值要不要,要的话返回什么东西。就是这三要素,不过最重要的还是行动吧,每一层究竟需要进行什么操作。
//思路:对于这道题,我一开始做反了,返回成了这样的
1
/
2 null
/
3 null
自然是错了,然后我将这个结果再递归反置一下也得到正确结果了,这个也提醒我们,可以反着来,最后将反着的结果给他正过来,扯远了。。。
我Ac之后去看了一下正确答案,跟这个比较类似,就是多用了一个指针指向一开始的root.right,因为我们会对这个root.right让它等于root.left.算了感觉讲不清楚,我去画两张图。
运用了后序遍历,保存了我们root的右节点,因为我们后面会让root.right指向root.left,所以必须保存,不然会丢失这个节点,让root.right指向root.left,让root.left指向null,最后再把p指向的原来的root.right 拼接再现在root.right 后面就好。基本就到这了,又什么问题,小伙伴们可以与我交流。