- 博客(19)
- 收藏
- 关注
原创 代码随想录算法训练营第二十二天 | 235. 二叉搜索树的最近公共祖先、 701.二叉搜索树中的插入操作、 450.删除二叉搜索树中的节点
701.二叉搜索树中的插入操作。450.删除二叉搜索树中的节点。
2023-05-16 18:53:04 99
原创 代码随想录算法训练营第二十一天 | 530.二叉搜索树的最小绝对差 、501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先
501.二叉搜索树中的众数。
2023-05-09 15:01:42 102
原创 代码随想录算法训练营第二十天 | 654.最大二叉树 、617.合并二叉树 、700.二叉搜索树中的搜索 、 98.验证二叉搜索树
若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;终于做出来两道二叉树617和700。难点在于想通为什么用中序遍历(左中右)它的左、右子树也分别为二叉搜索树。要了解二叉搜索树的遍历顺序。98.验证二叉搜索树。
2023-05-05 15:28:51 104
原创 代码随想录算法训练营第十八天 | 513.找树左下角的值、112. 路径总和 、113.路径总和ii、 106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树
513.找树左下角的值513.找树左下角的值num = 1global numprint(num)num = 123print(num)fun1()print(num)以上实例输出结果:1123123num = 10nonlocal num # nonlocal关键字声明num = 100print(num)inner()print(num)outer()以上实例输出结果:100100。
2023-05-02 19:19:53 92
原创 代码随想录算法训练营第十七天 | 110.平衡二叉树 、257. 二叉树的所有路径 、 404.左叶子之和
思维:先遍历父节点,判断他的左孩子是否为空的同时,判断左孩子的左孩子是否为空,即左孩子就是我们要找的值。节点A的左孩子不为空,且左孩子的左右孩子都为空(说明是叶子节点),那么A节点的左孩子为左叶子节点。是当 cur不为空,其左右孩子都为空的时候,就找到叶子节点。因为要先判断左右子树,才能进行中间的逻辑判断。257. 二叉树的所有路径。
2023-04-26 11:41:46 40
原创 代码随想录算法训练营第十六天 | 104.二叉树的最大深度 、559.n叉树的最大深度、111.二叉树的最小深度、 222.完全二叉树的节点个数
前序(中左右),后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数后者节点数(取决于高度从0开始还是从1开始)
2023-04-24 23:07:50 142
原创 代码随想录算法训练营第十五天 | 层序遍历 10道题 、226.翻转二叉树 、101.对称二叉树 2
使用前序遍历和后序遍历都比较方便,唯独中序遍历,因为中序遍历会把某些节点的左右孩子翻转了两次,所以中序遍历需要处理两边左孩子。因为要从下往上,才能告诉父节点,下面两个可以互相翻转,也就是左右中,后序。注意一开始要定义一个二维数组,一个个一维数组组成二维数组。注意只要把每一个节点的左右孩子翻转一下,就可以达到整体翻转的效果。难点二:如何比较,用左孩子的左孩子和右孩子的右孩子比较。117.填充每个节点的下一个右侧节点指针II。116.填充每个节点的下一个右侧节点指针。102.二叉树的层序遍历。
2023-04-24 21:35:56 86
原创 代码随想录算法训练营第十四天 | 理论基础、递归遍历144. 二叉树的前序遍历、145. 二叉树的后序遍历、94. 二叉树的中序遍历、迭代遍历、 统一迭代
在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,
2023-04-23 12:01:46 115
原创 代码随想录算法训练营第十三天 | 239. 滑动窗口最大值、347.前 K 个高频元素
看视频懂了,回到代码没看懂。347.前 K 个高频元素。239. 滑动窗口最大值。239. 滑动窗口最大值。
2023-04-20 12:04:30 41
原创 代码随想录算法训练营第十一天 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
二叉树,碰到运算符,取最顶上的两个出来运算,并返回栈,先取出来num2,再取出num1,运算的时候num1在前,num2在后运算,python可以import,但是python的除法和本题不一样,所以要"/": lambda x, y: int(x / y)stack 是空的,所以[a],下一个是b,[a,b],接下来是b,stack[-1]相同,所以pop。list(map(square, [1,2,3,4,5])) # 使用 list() 转换为列表。逆波兰表达式求值可以再回顾一下。
2023-04-19 09:34:04 57
原创 代码随想录算法训练营第十天 | 理论基础、 232.用栈实现队列、 225. 用队列实现栈
两个队列,in用来存储也就就是q2,out用来pop,也就是q1。看懂了,但是转换成python还是有点不太理解。
2023-04-17 18:49:30 51
原创 代码随想录算法训练营第八天 | 344.反转字符串、541. 反转字符串II、剑指Offer 05.替换空格、151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串
151.翻转字符串里的单词 的c++ 版本看懂了,自己的python操作语言不是很理解。在遍历字符串的过程中,cur 每次移动 2 * k,用到range(start,end,step)151.翻转字符串里的单词。
2023-04-17 09:42:30 42
原创 代码随想录算法训练营第七天 | 454.四数相加II 、383. 赎金信、 15. 三数之和 、18. 四数之和
难在剪枝,比如[-4,-1,0,0] target是-5,-4比-5大,所以剪枝的前提是target是正数,数字大于0。15题三数之和,要用双指针,去重逻辑的思考,很重要。对b,c去重还需理解。
2023-04-16 00:49:13 36
原创 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、 142.环形链表II
关键要画图!!tmp值要有两个。
2023-04-13 02:22:15 47
原创 代码随想录算法训练营第二天 | 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II
双指针用法0 one1 two2 three。
2023-04-08 20:29:04 116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人