109. 有序链表转换二叉搜索树

xiaoxiao2025-11-18  7

https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree/description/

思路:用一个全局变量node顺序遍历链表,然后用中序遍历方式递归构造树即可(画图比较好理解)

# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def sortedListToBST(self, head): """ :type head: ListNode :rtype: TreeNode """ runner = head length = 0 while runner: runner = runner.next length += 1 self.node = head return self.helper(0, length-1) def helper(self, start, end): if start > end: return None mid = (start + end) // 2 left = self.helper(start, mid-1) tmp = TreeNode(self.node.val) tmp.left = left self.node = self.node.next right = self.helper(mid+1, end) tmp.right = right return tmp
转载请注明原文地址: https://www.6miu.com/read-5039886.html

最新回复(0)