- 博客(6)
- 收藏
- 关注
原创 Leetcode树系列(6)108. 将有序数组转换为二叉搜索树【Python实现】
题目将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5解题思路要转换为一棵高度平衡二叉搜索树。也就是任意一个节点左子树的所有值都要比这个节点小,右子树的所
2020-09-28 10:13:05
170
原创 Leetcode树系列(5)173. 二叉搜索树迭代器【Python实现】
题目实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。示例:BSTIterator iterator = new BSTIterator(root);iterator.next(); // 返回 3iterator.next(); // 返回 7iterator.hasNext(); // 返回 trueiterator.next(); // 返回 9iterator.hasNext(); // 返
2020-09-28 09:47:29
163
原创 Leetcode树系列(4)617. 合并二叉树【Python实现】
题目给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 1 2
2020-09-28 09:30:45
186
原创 Leetcode树系列(1)104. 二叉树的最大深度【Python实现】
题目要求给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。解题思路如果当前节点为空,那么以当前节点为根节点的树的深度为0如果当前节点不为空,那么以当前节点为根节点的树的深度为左子树的最大深度和右子树的最大深度中较大的那一个加一# Defin
2020-09-27 21:07:24
143
原创 Leetcode树系列(2)226. 翻转二叉树【Python实现】
题目翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1解题思路从树的根开始递归遍历,直接反转当前节点的左子树和右子树,最后返回根节点即可。代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):#
2020-09-27 10:21:56
181
原创 Leetcode树系列(3)96. 不同的二叉搜索树【Python实现】
题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3/ \9 20 / \ 15 7返回它的最大深度 3 。解题思路递归。如果当前节点为空,返回当前节点的深度,也就是0。如果当前节点不为空,那么当前节点的深度等于它(左节点的深度和右节点的深度)当中最大的那个,再加一。代码实现# Definition fo
2020-09-27 10:14:45
133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人