作为要准备踏入码农行业的人来说,要准备校招,怎么能不去刷刷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)