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

二叉搜索树与双向链表

https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5

import java.util.*;
/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    TreeNode head = null;
    //根节点的前驱接节点
    TreeNode pre = null;
    public TreeNode Convert(TreeNode root) {
        if(root == null) return null;
        Convert(root.left);
        //找到最小的值,初始化pre和head
        if(pre == null){
            head = root;
            pre = root;
        }else{
		//当前节点与上一节点建立连接,将pre设置为当前值
            pre.right = root;
            root.left = pre;
            pre = root;
        }
        Convert(root.right);
        return head;
    }


}

思路:

  1. 对于本题,二叉搜索树,重要是找到最左端节点,即值最小的节点。链表有序,很明显使用中序遍历。
  2. 由根节点和前驱节点进行连接,不用管节点与右子树节点的连接。递归时候右子树节点就会变成根节点,重新与它的父节点(前驱节点)构建连接关系
全部评论

相关推荐

昨天 19:25
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 12:11
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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