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