本文主要是介绍LeetCode|938. Range Sum of BST,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
.
序言
开启python刷题时代,主要也是为了面试。
.
题目
Given the root node of a binary search tree and two integers low and high, return the sum of values of all nodes with a value in the inclusive range [low, high].
Example 1:
- Input: root = [10,5,15,3,7,null,18], low = 7, high = 15
- Output: 32
- Explanation: Nodes 7, 10, and 15 are in the range [7, 15]. 7 + 10 + 15 = 32.
Example 2:
- Input: root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10
- Output: 23
- Explanation: Nodes 6, 7, and 10 are in the range [6, 10]. 6 + 7 + 10 = 23.
Constraints:
- The number of nodes in the tree is in the range [1, 2 * 104].
- 1 <= Node.val <= 105
- 1 <= low <= high <= 105
- All Node.val are unique.
.
思路
简单的树遍历问题,可以用DFS也可以用BFS。
都是第一次用python写,决定先用DFS试试。
DFS遍历树节点,判断每个节点的val是否大于low并且小于high。
.
代码
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:def rangeSumBST(self, root: Optional[TreeNode], low: int, high: int) -> int:def sumVal(root):return root.val if low <= root.val <= high else 0def searchTree(root):if root is None:return 0return sumVal(root) + searchTree(root.left) + searchTree(root.right)return searchTree(root)
.
后序
python和C++的语法差异比我想象中的大一些。
目前感觉确实要容易很多。
继续加油!
.
这篇关于LeetCode|938. Range Sum of BST的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!