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

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

Convert Sorted List to Binary Search Tree

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

Recursive

Time Complexity

O(nlogn)
Space Complexity
O(logn)

思路

Get the middle of the linked list and make it root.

Recursive do same for left half and right half.

It is the same way as convert sorted array to Binary Search Tree.

First we need to find the mid of the linked list. We can use slow and fast pointer.

The only difference is we can get the mid of the sorted array by just use nums[i]. But we need to search for linked list and need to find the previous node before mid.

Remember to break the linked list.

代码

public TreeNode sortedListToBST(ListNode head) {    //corner case & base case    if(head == null) return null;    if(head.next == null) return new TreeNode(head.val);    ListNode slow = head;    ListNode fast = head;    ListNode pre = null;        //find the pre list of mid    while(fast != null && fast.next != null){        pre = slow;        slow = slow.next;        fast = fast.next.next;    }        pre.next = null;        TreeNode root = new TreeNode(slow.val);    root.left = sortedListToBST(head);    root.right = sortedListToBST(slow.next);    return root;}

转载地址:http://hzjpx.baihongyu.com/

你可能感兴趣的文章
左志坚:卖掉拇指阅读,没有什么舍不得
查看>>
SDN&NFV营收大数据分析
查看>>
监督学习最常见的五种算法,你知道几个?
查看>>
隧道高清网络视频传输解决方案
查看>>
《Servlet和JSP学习指南》一1.3 编写基础的Servlet应用程序
查看>>
技术报告:APT组织Wekby利用DNS请求作为C&C设施
查看>>
抢先布局5G:联发科加入中国移动5G联合创新中心
查看>>
云服务鼻祖来告诉你99%的创业者不知道的事
查看>>
WFA发布LTE-U共存测试计划 Wi-Fi和LTE-U将公平共享频谱
查看>>
快递单信息泄露惊人 隐形面单能拯救你的隐私吗?
查看>>
移动“村务云”创新“互联网+无线政务”新方式
查看>>
大数据企业落户山西将获重金奖励
查看>>
新品、新投资方两大悬念待解 海云捷迅发布会受关注
查看>>
Kubuntu 15.10 高清截图欣赏
查看>>
30 岁: 程序员心中永远的痛?
查看>>
《C++ 黑客编程揭秘与防范(第2版)》—第6章6.7节打造一个密码显示器
查看>>
时间到底是怎么弯曲的?
查看>>
《游戏编程模式》一1.7 准备出发
查看>>
讨喜的隔离可变性(十二)基于角色模型的局限性和小结
查看>>
《Nmap渗透测试指南》—第10章10.2节Zenmap基本配置
查看>>