【Leetcode刷题篇】leetcoe109 有序链表转换二叉搜索树
发布日期:2021-06-29 15:33:25
浏览次数:2
分类:技术文章
本文共 1227 字,大约阅读时间需要 4 分钟。
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
思路:用快慢结点的思路来求出链表的中间结点,使其生成根节点
package com.lcz.leetcode;/** * 有序链表转换二叉搜索树 * @author LvChaoZhang * */public class Leetcode109 { class ListNode{ int val; ListNode next; ListNode(){ } ListNode(int val){ this.val = val; } ListNode(int val,ListNode next){ this.val = val; this.next = next; } } class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode(){ } TreeNode(int val){ this.val = val; } TreeNode(int val,TreeNode left,TreeNode right){ this.val = val; this.left = left; this.right = right; } } public TreeNode sortedListToBST(ListNode head) { return dfs(head,null); } private TreeNode dfs(ListNode left,ListNode right) { // 遍历终止条件 if(left==right) { return null; } ListNode mid = getMedian(left,right); TreeNode root = new TreeNode(mid.val); root.left = dfs(left,mid); root.right = dfs(mid.next,right); return root; } private ListNode getMedian(ListNode left,ListNode right) { ListNode fast = left; ListNode slow = left; while(fast!=right&&fast.next!=right) { fast = fast.next.next; slow = slow.next; } return slow; }}
转载地址:https://codingchaozhang.blog.csdn.net/article/details/109492237 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月18日 15时52分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于CH568芯片加密SD卡方案
2019-04-29
1元钱的超低成本单芯片USB单片机方案
2019-04-29
单片机/树莓派扩展双串口(TTL和RS485)
2019-04-29
JAVA(android)提取WIFI客流探针MAC地址源码
2019-04-29
基于CH568芯片的SATA电子盘方案
2019-04-29
linux下C语言判断网络是否连接
2019-04-29
STM32Cube_FW_F4_V1.17 F4固件包百度网盘下载
2019-04-29
猿来绘Java-35-线程的同步(生产者和消费者问题)
2019-04-29
猿来绘Java-36-解决线程安全问题
2019-04-29
猿来绘Java-37-ReentrantLock解决线程安全问题
2019-04-29
猿来绘Java-38-生产者消费者模型
2019-04-29
猿来绘Java-39-JDK8的新日期时间类
2019-04-29
猿来绘Java-40-比较器(Comparable 接口与 CompareTo方法)
2019-04-29
猿来绘Java-41-源码分析String对象的数组的排序(JDK1.8)
2019-04-29
猿来绘Java-42-枚举类的使用
2019-04-29
猿来绘Java-43-初步认识注解
2019-04-29
猿来绘Java-44-自定义注解和元注解
2019-04-29
猿来绘Java-45-JDK8新特性可重复注解和类型注解
2019-04-29
猿来绘Java-46-Collection接口及其方法
2019-04-29
猿来绘Java-47- foreatch 增强for循环
2019-04-29