赞
踩
给你二叉树的根节点 root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]
示例 2:
输入:root = [1]
输出:[[1]]
示例 3:
输入:root = []
输出:[]
提示:
[0, 2000]
内-1000 <= Node.val <= 1000
def levelOrder(self, root: Optional[TreeNode]) -> list[list[int]]: if not root: return [] queue = collections.deque([root]) result = [] while queue: level_vales = [] for _ in range(len(queue)): node = queue.popleft() level_vales.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) result.append(level_vales) return result
给你一个整数数组 nums
,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。
高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。
示例 1:
输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:
示例 2:
输入:nums = [1,3]
输出:[3,1]
解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。
提示:
1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums
按 严格递增 顺序排列def sortedArrayToBST(self, nums: list[int]) -> Optional[TreeNode]:
if not nums:
return None
mid = len(nums) // 2
root = TreeNode(nums[mid])
root.left = sortedArrayToBST(nums[:mid])
root.right = sortedArrayToBST(nums[mid + 1:])
return root
给你一个二叉树的根节点 root
,判断其是否是一个有效的二叉搜索树。
有效 二叉搜索树定义如下:
示例 1:
输入:root = [2,1,3]
输出:true
示例 2:
输入:root = [5,1,4,null,null,3,6]
输出:false
解释:根节点的值是 5 ,但是右子节点的值是 4 。
提示:
[1, 104]
内-231 <= Node.val <= 231 - 1
def isValidBST(self, root: Optional[TreeNode]) -> bool:
def isValid(node, min_val, max_val):
if not node:
return True
if not min_val < node.val < max_val:
return False
return isValid(node.left, min_val, node.val) and isValid(node.right, node.val, max_val)
return isValid(root, float('-inf'), float('inf')) # 对于根节点,它的上下限为无穷大和无穷小
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。