【leetcode】109. Convert Sorted List to Binary Search Tree
生活随笔
收集整理的這篇文章主要介紹了
【leetcode】109. 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.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of?every?node never differ by more than 1.
Example:
Given the sorted linked list: [-10,-3,0,5,9],One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST:0/ \-3 9/ /-10 5解題思路:題目沒有明確要求不允許使用額外的內存,所以最簡單的方法是把linked list中每個元素的值存入list,然后套用【leetcode】108. Convert Sorted Array to Binary Search Tree?的解法。
代碼如下:
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution(object):def recursive(self,node,nums):mid = len(nums)/2left_num = nums[:mid]if len(left_num) > 0:node.left = TreeNode(left_num[len(left_num)/2])self.recursive(node.left,left_num)right_num = nums[mid+1:]if len(right_num) > 0:node.right = TreeNode(right_num[len(right_num)/2])self.recursive(node.right,right_num)def sortedListToBST(self, head):""":type head: ListNode:rtype: TreeNode"""nums = []while head != None:nums.append(head.val)head = head.nextif len(nums) == 0:return Noneroot = TreeNode(nums[len(nums)/2])self.recursive(root,nums)return root?
轉載于:https://www.cnblogs.com/seyjs/p/10625312.html
總結
以上是生活随笔為你收集整理的【leetcode】109. Convert Sorted List to Binary Search Tree的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL存储过程及触发器
- 下一篇: Git submodule的使用