zoukankan      html  css  js  c++  java
  • [leetcode]Convert Sorted Array to Binary Search Tree @ Python

    原题地址:http://oj.leetcode.com/problems/convert-sorted-array-to-binary-search-tree/

    题意:将一个排序好的数组转换为一颗二叉查找树,这颗二叉查找树要求是平衡的。

    解题思路:由于要求二叉查找树是平衡的。所以我们可以选在数组的中间那个数当树根root,然后这个数左边的数组为左子树,右边的数组为右子树,分别递归产生左右子树就可以了。

    代码:

    # Definition for a  binary tree node
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        # @param num, a list of integers
        # @return a tree node
        def sortedArrayToBST(self, num):
            length = len(num)
            if length == 0:
                return None
            if length == 1:
                return TreeNode(num[0])
            root = TreeNode(num[length / 2])
            root.left = self.sortedArrayToBST(num[:length/2])
            root.right = self.sortedArrayToBST(num[length/2 + 1:])
            return root
            
  • 相关阅读:
    Live2d Test Env
    关于word2vec的一些问题
    排序链表
    最长回文子串
    前缀树
    验证回文串
    最大子序和/积
    构建知识图谱-初学
    HMM-维特比算法理解与实现(python)
    跨存储后台迁移数据的三种方案
  • 原文地址:https://www.cnblogs.com/zuoyuan/p/3722103.html
Copyright © 2011-2022 走看看