Fluid
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
102. Binary Tree Level Order Traversal

102. Binary Tree Level Order Traversal

Medium的题开始上强度了,需要看答案才能想出解决方法了。但是看懂答案再去模仿何尝不是一种学习的方法呢 请看题 Example 思路Medium类型的题目。看答案再想思路。 题目要求使用层次遍历,那么层次遍历需要用到queue。基于这个queue再去想其他的方法。 回到代码上,首先定义了双重vector作为答案返回,其值需在循环中更新。 首先还是熟悉的如果传入的树为空直接返回答案,这一步骤是
2024-06-04
LeetCode
#LeetCode
98. Validate Binary Search Tree

98. Validate Binary Search Tree

请看题 Example 思路这道题要求我们去判断一棵树是不是一颗二叉树,那么二叉树的特征就是其左子树节点一定小于其当前节点,右子树节点则是大于。 有两种方式,使用Inorden算法,将每一节点存入到容器中然后去比较,如果不符合inorden的规则那么必定为false。反之True。 本文实现的是第二种方法,在进行判断的时候就顺便处理了,定义一个私有方法用来给公共方法调用。 私有方法的实现逻辑是
2024-06-02
LeetCode
#LeetCode
450. Delete Node in a BST

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

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

404 Sum of Left Leaves

请看题 Example 解析这一道题要求我们去计算左孩子的sum,怎么去计算呢? 想一想,判断左孩子要什么条件呢? 根据Example中我们可以看见,左孩子的下节点为空,那么根据if我们就可以写出如果当前节点不为空并且左孩子的左右节点为空那么就可以获取到值,然后计算 Code123456789101112131415161718192021222324252627282930313233343
2024-05-25
LeetCode
#LeetCode
108. Convert Sorted Array to Binary Search Tree

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

LeetCode 111. Minimum Depth of Binary Tree

请看题 Example 思路从Leetcode给我们的例子中可以看出来,我们需要获取到节点深度为最低的那个值,在第一个例子中,最低节点深度为2,从3到9 在第二个例子中,最低节点深度为5,因为它只有右孩子而没有左孩子。 那么问题来了,怎么去获取这个节点最低深度呢? 首先,先把当传入的节点为空条件写出来 !root 返回0;这是因为会有一个测试条件来传入空树。然后我们就可以开始写另外一个函数来获
2024-05-22
LeetCode
#LeetCode
Leetcode 100 Same Tree

Leetcode 100 Same Tree

请看题 Example 思路从Leetcode给我们的例子中可以看出来,两颗树是一样的当元素的位置和元素内容都是等于才是一样的树。那么在这里思考思考一下逻辑,反向来推导结论 首先必要的就是递归了,给的参数是两棵树,那么递归的必要条件就是每一次调用的时候都传入这两棵树的左右节点,这里的左右节点条件为and,不是or。需注意 那么如果两棵树同时为空说明是一样的,这时候返回true 按照这个道理可以
2024-05-21
LeetCode
#LeetCode
Leetcode 101 Symmetric tree

Leetcode 101 Symmetric tree

请看题 Example 思路从Leetcode给我们的例子中可以看出来,两颗树是对称的是当元素的位置和元素内容都是对称的,如果有任意一颗树含有多余节点那么就不是对称的 还是递归,从leetcode模板中可以知道传入的是一颗完整的树,而我们需要去进行判断,怎么判断呢? 新建函数传入左右节点我们可以新建一个函数用来接收左节点的和右节点的内容,如果 有任意节点的元素不一样那就不是对称的 一个为空一
2024-05-21
LeetCode
#LeetCode
94. Binary Tree Inorder Traversal

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
1…34567

搜索

Hexo Fluid
总访问量 次 总访客数 人