zoukankan      html  css  js  c++  java
  • 108. 将有序数组转换为二叉搜索树

    108. 将有序数组转换为二叉搜索树

    题意

    将有序数组转化为链表;

    解题思路

    1. 将数组切片,中间值作为根结点,两边则则作为左子树和右子树;

    2. 维护左右两个值,实现对数组切片的功能;

    实现

    class Solution(object):
       def sortedArrayToBST(self, nums):
           """
          :type nums: List[int]
          :rtype: TreeNode
          """
           if not nums:
               return None
           elif len(nums) == 1:
               return TreeNode(nums[0])
           
           mid = len(nums) // 2
           cur = TreeNode(nums[mid])
           cur.left = self.sortedArrayToBST(nums[:mid])
           cur.right = self.sortedArrayToBST(nums[mid+1:])
           return cur
         
    def sortedArrayToBST(self, nums):
           """
          :type nums: List[int]
          :rtype: TreeNode
          """
           def dfs(start, end):
               if start == end:
                   return None
               mid = start + (end - start) // 2
               cur = TreeNode(nums[mid])
               cur.left = dfs(start, mid)
               cur.right = dfs(mid+1, end)
               return cur
           
           if not nums:
               return None
           
           return dfs(0, len(nums))
         
    def sortedArrayToBST(self, nums):
           """
          :type nums: List[int]
          :rtype: TreeNode
          """
           def helper(left, right):
               if left > right:
                   return None
               if left == right:
                   return TreeNode(nums[left])

               mid = (left + right) // 2
               node = TreeNode(nums[mid])
               node.left = helper(left, mid-1)
               node.right = helper(mid+1, right)
               return node
           
           if not nums:
               return None
           
           return helper(0, len(nums)-1)
  • 相关阅读:
    combobox只读代码
    winform中相对路径和绝对路径的获取
    C#中启动外部应用程序
    C#winfrom中应用程序只启动一次代码
    测试计划详细版
    如何编写有效的测试计划
    产品经理,如何面对一句话需求?
    需求评审-软件测试最有效的阶段
    分享一套好用的功能测试用例编写框架
    selenium加载配置文件
  • 原文地址:https://www.cnblogs.com/George1994/p/7482893.html
Copyright © 2011-2022 走看看