We can first convert the linked list to array and then use last problem's solution.
Solution:
# T:O(n) S:O(n)
class Solution:
# @param {ListNode} head
# @return {TreeNode}
def sortedArrayToBST(self, nums):
length = len(nums)
if length == 0:
return None
if length == 1:
return TreeNode(nums[0])
root = TreeNode(nums[length/2])
root.left = self.sortedArrayToBST(nums[:length/2])
root.right = self.sortedArrayToBST(nums[length/2+1:])
return root
def sortedListToBST(self, head):
nums = []
while head != None:
nums.append(head.val)
head = head.next
return self.sortedArrayToBST(nums)
Run Time: 304 ms
No comments:
Post a Comment