训练营刷题_day17_python

今日leetcode 四题:

654.最大二叉树
617.合并二叉树
700.二叉搜索树中的搜索
98.验证二叉搜索树

小结:
  1. 今天也是巧合下复习了堆排序和递归详解
  2. 再次遇到 return and 还是 or:如果是and,两个成立才成立,and 遇到 None立马返回None;如果是 or,一个成立就成立,or 遇到非None,立马返回非None值
654.最大二叉树
*题外话:复习一下堆,之前写过,现在还是有点不会写,尴尬。* 这道题难度不大,要读题,算法人家都写出来了!速读只能读小说。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a1712074721949bca092ca8633aa6841.png)
  • 二叉堆/最小堆/堆排序:
import heapq
heapq.heapify(pq)
heapq.heappop(pq)
heapq.heappush(pq)
    def constructMaximumBinaryTree(self, nums: List[int]) -> Optional[TreeNode]:
        def digui(left,right):
            if left>right:
                return
            max_inx = left
            for i in range(left+1,right+1):
                if nums[i] > nums[max_inx]:
                    max_inx = i
            node = TreeNode(nums[max_inx])
            node.left = digui(left,max_inx-1) 
            node.right= digui(max_inx+1,right)
            return node
        return digui(0,len(nums)-1)
617 合并二叉树
简单题贼快

在这里插入图片描述

113.二叉搜索树中的搜索

在这里插入图片描述

98.验证二叉搜索树

目前的算法逻辑是不对的,但是有77/85,先放过,明天再改,嘿嘿
在这里插入图片描述

def buildTree(inorder, postorder):
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值