二叉搜索树和双向链表

二叉搜索树与双向链表

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

二叉搜索树和双向链表

借鉴大佬的代码,牛客id为 ZwZ呀咿呀咿哟
分析如下:

  1. 有序的双向链表=>中序遍历, 小->大
  2. 根据要求,节点的left指向小节点,节点的right指向大节点
    • 递归的规律出来了,left向小节点,也就是前一个节点
    • left指向大节点,那么前一个节点的right指向当前节点
    • 头节点就是node.left == null 的节点
private TreeNode treeNode = null ;
public void Convert(TreeNode pRootOfTree) {

       if (pRootOfTree == null){
            return null ;
        }else {
            Convert(pRootOfTree.left);
            pRootOfTree.left = treeNode ; //左节点指向小节点
            if (treeNode!=null){
                treeNode.right = pRootOfTree ;//右节点指向大节点
            }
            treeNode = pRootOfTree ; // 记录上一个遍历到的节点
            Convert(pRootOfTree.right);

        }
    }
全部评论
要求不能创建任何新的结点
点赞 回复 分享
发布于 2021-01-16 16:20
你粘人家大神的代码也得粘全一点啊
点赞 回复 分享
发布于 2021-01-15 10:39

相关推荐

frutiger:逆天,我家就安阳的,这hr咋能说3k的,你送外卖不比这工资高得多?还说大厂来的6k,打发叫花子的呢?这hr是怎么做到说昧良心的话的
点赞 评论 收藏
分享
评论
7
2
分享

创作者周榜

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