二叉搜索树和双向链表

二叉搜索树与双向链表

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-15 10:39
要求不能创建任何新的结点
点赞 回复
分享
发布于 2021-01-16 16:20
联易融
校招火热招聘中
官网直投

相关推荐

点赞 评论 收藏
转发
7 2 评论
分享
牛客网
牛客企业服务