zoukankan      html  css  js  c++  java
  • [leetcode]Unique Binary Search Trees II @ Python

    原题地址:https://oj.leetcode.com/problems/unique-binary-search-trees-ii/

    题意:接上一题,这题要求返回的是所有符合条件的二叉查找树,而上一题要求的是符合条件的二叉查找树的棵数,我们上一题提过,求个数一般思路是动态规划,而枚举的话,我们就考虑dfs了。dfs(start, end)函数返回以start,start+1,...,end为根的二叉查找树。

    代码:

    # Definition for a  binary tree node
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        # @return a list of tree node
        def dfs(self, start, end):
            if start > end: return [None]
            res = []
            for rootval in range(start, end+1):        #rootval为根节点的值,从start遍历到end
                LeftTree = self.dfs(start, rootval-1)
                RightTree = self.dfs(rootval+1, end)
                for i in LeftTree:                #i遍历符合条件的左子树
                    for j in RightTree:              #j遍历符合条件的右子树
                        root = TreeNode(rootval)
                        root.left = i
                        root.right = j
                        res.append(root)
            return res
        def generateTrees(self, n):
            return self.dfs(1, n)
  • 相关阅读:
    显示进度条
    LEAVE LIST-PROCESSING …
    博主心声
    sap设置权限
    快捷键大全
    VS快捷键
    vs中图片资源的横竖屏的影响
    error C4430: 缺少类型说明符
    cocos2dx3.3 使用cocos studio2.0 导出的.csb文件
    让cocos2d-x 3.0读取cocostudio中的csb文件
  • 原文地址:https://www.cnblogs.com/zuoyuan/p/3752428.html
Copyright © 2011-2022 走看看