Untitled
unknown
plain_text
a year ago
843 B
11
Indexable
def sortedListToBST(self, head: Optional[ListNode]):
def getMiddle(head):
preHead = ListNode(-1000000000, head)
fast = preHead
slow = preHead
pre = slow
while fast is not None:
fast = fast.next
if fast is not None:
fast = fast.next
pre = slow
slow = slow.next
return pre
def BT(node):
if node is None:
return None
middle_pointer = getMiddle(node)
middle = middle_pointer.next
if middle is None:
return TreeNode(node.val)
middle_pointer.next = None
curr = TreeNode(middle.val)
if node != middle:
curr.left = BT(node)
curr.right = BT(middle.next)
return curr
return BT(head)Editor is loading...
Leave a Comment