450. Delete Node in a BST 请看题 Example 思路Medium类型的题目。要求删除节点,还好不是AVL树,不然每次删除还要平衡,更难写了。 此题的思路为一个完全体的if。 首先判断节点是否为空,如果为空直接返回其头。 后面跟着两个else if用来判断当前节点的值是否为小于或者大于目标要求我们删除的值。如果进入了这个else if,那么我们就更新其左/右节点的值。 在后面就是一个else了,根据前面的if 2024-05-29 LeetCode #LeetCode
700. Search in a Binary Search Tree 请看题 Example 思路非常简单的一道题,如果当前节点值小于val就往右走,反过来也是一样。然后再加一个if判断当前节点值为不为空或者当前节点值==val就返回节点。最后提交即可。Code1234567891011121314151617181920212223242526272829/**/** * Definition for a binary tree node. 2024-05-27 LeetCode #LeetCode
404 Sum of Left Leaves 请看题 Example 解析这一道题要求我们去计算左孩子的sum,怎么去计算呢? 想一想,判断左孩子要什么条件呢? 根据Example中我们可以看见,左孩子的下节点为空,那么根据if我们就可以写出如果当前节点不为空并且左孩子的左右节点为空那么就可以获取到值,然后计算 Code123456789101112131415161718192021222324252627282930313233343 2024-05-25 LeetCode #LeetCode
108. Convert Sorted Array to Binary Search Tree 请看题 Example 解析这一道题要求我们进行一个插入操作,插入树的要求为avl树,也就是平衡因子绝对值不能大于1 给定一个排序过后的数组,使用数组来进行插入操作。 最开始的思路最开始,我想到是我前不久写过的一道题 isBalaced 因为这道题要求我们插入的规则是必须遵守平衡,而isBalanced这道题正好解决了问题,我只需要进行判断,然后插入。 但是真正开始写的时候发现问题了,太太繁琐 2024-05-23 LeetCode #LeetCode
LeetCode 111. Minimum Depth of Binary Tree 请看题 Example 思路从Leetcode给我们的例子中可以看出来,我们需要获取到节点深度为最低的那个值,在第一个例子中,最低节点深度为2,从3到9 在第二个例子中,最低节点深度为5,因为它只有右孩子而没有左孩子。 那么问题来了,怎么去获取这个节点最低深度呢? 首先,先把当传入的节点为空条件写出来 !root 返回0;这是因为会有一个测试条件来传入空树。然后我们就可以开始写另外一个函数来获 2024-05-22 LeetCode #LeetCode
Leetcode 100 Same Tree 请看题 Example 思路从Leetcode给我们的例子中可以看出来,两颗树是一样的当元素的位置和元素内容都是等于才是一样的树。那么在这里思考思考一下逻辑,反向来推导结论 首先必要的就是递归了,给的参数是两棵树,那么递归的必要条件就是每一次调用的时候都传入这两棵树的左右节点,这里的左右节点条件为and,不是or。需注意 那么如果两棵树同时为空说明是一样的,这时候返回true 按照这个道理可以 2024-05-21 LeetCode #LeetCode
Leetcode 101 Symmetric tree 请看题 Example 思路从Leetcode给我们的例子中可以看出来,两颗树是对称的是当元素的位置和元素内容都是对称的,如果有任意一颗树含有多余节点那么就不是对称的 还是递归,从leetcode模板中可以知道传入的是一颗完整的树,而我们需要去进行判断,怎么判断呢? 新建函数传入左右节点我们可以新建一个函数用来接收左节点的和右节点的内容,如果 有任意节点的元素不一样那就不是对称的 一个为空一 2024-05-21 LeetCode #LeetCode
94. Binary Tree Inorder Traversal 请看题 Example 思路这道题太简单了,直接上代码了 Code123456789101112131415161718192021222324252627282930/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNod 2024-05-15 LeetCode #LeetCode
LeetCode 965. Univalued Binary Tree 请看题 Example 思路还是熟悉的二叉树结构,我们还是可以继续用递归来解决 这道题就是来判断当前树是否都是同样的值对于判断是否相等我们可以传入一个初始值,这个初始值为一个不变的值,如果在比较中有一处不同,那么这个树的答案为false,反之true 直接上代码了 Code123456789101112131415161718192021222324252627282930/** * Defin 2024-05-12 LeetCode #LeetCode
LeetCode 563 Binary Tree Tilt 请看题 Example 思路还是熟悉的二叉树结构,我们还是可以继续用递归来解决 首先要判断的几个点是如果左节点或者右节点为空那么Tilt为0,如果不为空那么使用递归来进行获取到节点的值。每个节点的值都要进行 abs(left - right) 操作,题目要求的。 首先要获取到左节点的孩子们所有的值,然后获取右节点孩子们的所有值,再然后进行获取Tilt,有点绕脑,但是递归能够很好的为我们解决这个问题 2024-05-11 LeetCode #LeetCode