博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-109-有序链表转二叉搜索树
阅读量:4357 次
发布时间:2019-06-07

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

---恢复内容开始---

 题目描述:

 

 方法一:O(n) O(n)

class Solution:    def sortedListToBST(self, head: ListNode) -> TreeNode:        nums = []        while head:            nums.append(head.val)            head = head.next        def helper(nums):            if not nums:                return None            m = len(nums)//2            root = TreeNode(nums[m])            root.left = helper(nums[0:m])            root.right = helper(nums[m+1:])            return root        return helper(nums)

方法二:O(nlogn)O(logn)

class Solution:    def findMid(self,head):        prevPtr = None        slowPtr = head        fastPtr = head        while fastPtr and fastPtr.next:            prevPtr = slowPtr            slowPtr = slowPtr.next            fastPtr = fastPtr.next.next        if prevPtr:            prevPtr.next = None        return slowPtr    def sortedListToBST(self, head: ListNode) -> TreeNode:        if not head:            return None        mid = self.findMid(head)        node = TreeNode(mid.val)        if head==mid:            return node        node.left = self.sortedListToBST(head)         node.right = self.sortedListToBST(mid.next)         return node

 

---恢复内容结束---

转载于:https://www.cnblogs.com/oldby/p/11185354.html

你可能感兴趣的文章
js常用方法
查看>>
建造者模式
查看>>
Spring入门教程:通过MyEclipse开发第一个Spring项目
查看>>
【转】你可能不知道的Shell
查看>>
廖雪峰Java1-2程序基础-1基本结构
查看>>
golang下的grpc
查看>>
1. 自动化运维系列之Cobbler自动装机
查看>>
ASP.NET MVC Model绑定(二)
查看>>
一步一步写算法(之hash表)
查看>>
漫谈并发编程(一) - 并发简单介绍
查看>>
JDBC连接MySQL数据库及演示样例
查看>>
Beta 冲刺(1/7)
查看>>
修改 Vultr 登录密码
查看>>
CSS学习
查看>>
Centos 安装lnmp完整版
查看>>
【转】Eclipse和PyDev搭建完美Python开发环境(Ubuntu篇)
查看>>
redis安装和配置
查看>>
2016424王启元 Exp5 msf基础应用
查看>>
android + eclipse + 后台静默安装(一看就会)
查看>>
JPA事务总结
查看>>