题解 | #二叉搜索树与双向链表#
二叉搜索树与双向链表
http://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5
看了评论区大佬方法,pre要加引用或者干脆设置为一个成员变量,因为回溯后还要用到pre
class Solution { public: void backtra(TreeNode* cur,TreeNode*& pre){ if(!cur) return; backtra(cur->left, pre); cur->left=pre; if(pre) pre->right=cur; pre=cur; backtra(cur->right,pre); } TreeNode* Convert(TreeNode* pRootOfTree) { if(!pRootOfTree) return pRootOfTree; TreeNode* pre =NULL; backtra(pRootOfTree, pre); TreeNode* ans =pRootOfTree; while(ans->left){ ans=ans->left; } return ans; } };