题解 | #二叉搜索树与双向链表#

二叉搜索树与双向链表

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;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务