博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode]109. Convert Sorted List to Binary Search Tree
阅读量:5999 次
发布时间:2019-06-20

本文共 1224 字,大约阅读时间需要 4 分钟。

Given a singly linked list where elements are sorted in ascending order, convert it to a heightbalanced BST.

 

思路:二分法;

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } *//** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    public TreeNode sortedListToBST(ListNode head) {        if (head==null)                              //如果一开始传进来的是空链表,返回null            return null;        if (head.next==null)                      //递归终止条件            return new TreeNode(head.val);        ListNode p = head,q = head,m = head;    //快慢指针找中间值        while (q!=null&&q.next!=null){            q = q.next.next;            p = p.next;        }        q = p.next;        TreeNode root = new TreeNode (p.val);        while (m.next!=p)                                                m = m.next;                           m.next = null;        root.left = sortedListToBST(head);            //分治        root.right = sortedListToBST(q);        return root;            }}

 

转载于:https://www.cnblogs.com/David-Lin/p/7787313.html

你可能感兴趣的文章
Java反射机制在Spring IOC中的应用
查看>>
使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10
查看>>
IOS-UITableView入门(3)
查看>>
JavaScript -- 标签 , Break 和 Continue 语句
查看>>
jquery面向对象写法
查看>>
YTUOJ-推断字符串是否为回文
查看>>
在Mac OS X中部署Tomcat的经验
查看>>
[ExtJS5学习笔记]第八节 Extjs5的Ext.toolbar.Toolbar工具条组件及其应用
查看>>
超时设置或默认参数 专题
查看>>
动态配置 JBOSS ( eap 6.2 ) 数据源
查看>>
揭秘传智播客班级毕业薪资超7k的内幕系列之四----汽车工的华丽转身
查看>>
5行代码实现一致性哈希
查看>>
直板何时用推挡,何时用反面横打
查看>>
SQL Server性能优化——等待——SLEEP_BPROOL_FLUSH
查看>>
React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了
查看>>
centos7-windows10 双系统安装
查看>>
关于git的总结
查看>>
HDU 4960 Another OCD Patient(记忆化搜索)
查看>>
UVA 540(队列)
查看>>
算法导论学习之线性时间求第k小元素+堆思想求前k大元素
查看>>