剑指offer-26-二叉搜索树与双向链表

二叉搜索树与双向链表

http://www.nowcoder.com/questionTerminal/947f6eb80d944a84850b0538bf0ec3a5

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。

TreeNode* Convert(TreeNode* pRootOfTree)
    {
        if(!pRootOfTree) return nullptr;
        TreeNode *pre = nullptr;
        TreeNode *root = pRootOfTree;
        ConvertDfs(pRootOfTree, pre, root);
        return root;
    }

    void ConvertDfs(TreeNode *cur, TreeNode *&pre, TreeNode *&root) {
        if(!cur) return;
        ConvertDfs(cur->left, pre, root);
        cur->left = pre;
        if(pre)
            pre->right = cur;
        else 
            root = cur;
        pre = cur;
        ConvertDfs(cur->right, pre, root);
    }
全部评论

相关推荐

点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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