LeetCode 题目-938. 二叉搜索树的范围和/965. 单值二叉树和(python实现)

作为要准备踏入码农行业的人来说,要准备校招,怎么能不去刷刷LeetCode呢?

938. 二叉搜索树的范围和

  • 题目要求

给定二叉搜索树的根结点 root,返回 L 和 R(含)之间的所有结点的值的和。

二叉搜索树保证具有唯一的值。

  • 例如
输入:root = [10,5,15,3,7,null,18], L = 7, R = 15
输出:32
示例 2:

输入:root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10
输出:23

  • 分析

方法:递归判断值与LR的关系,如果比L小就往节点的右子树走,比R大就往节点的左子树走


class Solution(object):
    def rangeSumBST(self, root, L, R):
        self.lrnum=0
        self.nums(root,L,R)
        return self.lrnum
    def nums(self,root,L,R):
        if root is None:
            return
        val=root.val
        if  val>=L and val<=R:
            self.lrnum+=val
            self.nums(root.right, L, R)
            self.nums(root.left, L, R)
        elif val>R:
            self.nums(root.left,L,R)
        elif val<L:
            self.nums(root.right,L,R)

965. 单值二叉树和

  • 题目要求

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。

只有给定的树是单值二叉树时,才返回 true;否则返回 false。

  • 例如
省略
  • 分析

方法:以根节点的值作为参数传入,判断其其余节点的值是否相等即可



class Solution(object):
    def isUnivalTree(self, root):

        return self.judge(root,root.val)
    def judge(self,root,val):
        if root is None:
            return True
        if root.val!=val:
            return False
        return self.judge(root.left,val) and self.judge(root.right,val)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值