
数据结构oj
文章平均质量分 85
数据结构oj
freedom
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode链表回文 链表分割 链表相交 环形链表I 环形链表II 获取链表中倒数k的节点
因为是单链表我们需要将中间点的后续节点翻转,从而由最后一个节点开始走知道slow的下一个节点指向slow,将slow下一个节点给到cur对象,让cur的下一个节点指向slow。如果cur下一个节点指向slow的话,cur就会失去后续节点的链接,所以我们还需要一个对象来接收cur的下一个节点。首先求得回文串中的中间位置,因为回文串两边的头节点往中间靠拢,在相同的情况下,如果两边头节点相遇则是回文串。然后cur=curNext,cur的节点更新,知道找到最后一个节点。然后slow=cur将slow更新为头步。原创 2024-11-09 23:37:51 · 580 阅读 · 7 评论 -
LeetCode通过栈解题逆波兰表达式 有效的括号 栈的压入、弹出序列 最小栈 清除数字
对计算机而言中缀表达式是非常复杂的结构。相对来说,逆波兰式在计算机看来却是比较简单易懂的结构。因为计算机普遍采用的内存结构是栈式结构,它执行先进后出的顺序。*我们将其中缀式的中每一个括号内对应的符号位置放到括号外去形成后缀表达式。条件三每个右括号都需要包含相同类型的左括号。条件二左括号和右括号的顺序需保持正确。条件一需以相应的右括号闭合。原创 2024-11-13 23:01:54 · 821 阅读 · 16 评论 -
数据结构在二叉树Oj中利用子问题思路来解决问题
如果a释放完且a树的值给到了一维数组后,会得到b和c两个子树并放到队列中,这时候需要一个计数器来计算当前的层数,当层数为0时,我们将一维数组所有的值放到二维数组中就好了。这里当我们递出去时,我们就会减少一层当k等于1时,这里我们就在k层找到一个节点然后回归到父节点然后继续子树找下一个节点,知道将k层的节点数遍历完。只判断了根的节点的话它的左右子树的差确实为1,但是左子树中b的左子树和右子树的差值为2,这也不是一个平衡的二叉树。(ret如果为空,说明root根或者递归的条件就是空的,没有要找的元素)原创 2024-11-20 20:58:50 · 3696 阅读 · 77 评论 -
二叉树oj题解析
最近的公共祖先指的是这一棵树中两个节点中深度最大的且公共的祖先节点就是最近祖先节点。也就是说这两个节点在树中距离最近的相交例如:8 与6中的最近公共节点为2,因为他的最大深度就是2(在同一颗子树中)。8与4的最近公共节点为3,因为他的最大深度是3(在左右两棵子树中的情况)。原创 2024-11-22 23:06:37 · 1002 阅读 · 46 评论 -
非递归遍历二叉树(数据结构)
因为中序遍历是左根右,给定一个辅助栈,每次走到最后一个节点的left或者right为空时将栈中的元素给到数组,然后再去遍历栈顶右边元素是否为空。在数据结构中的学习难免少不了递归的学习,递归有时候也会让代码变得更加简洁,学习递归让我们对代码有更近一步的思考。每遍历一个节点打印一次元素且将其放入栈中,直到为空时,将栈顶元素移除来并打印并让其查看另一子树是否为空节点。二叉树的遍历方式有:前序遍历、中序遍历、后续遍历,层序遍历,而树的大部分情况下都是通过递归的方式来进行的。原创 2024-11-25 22:31:16 · 1689 阅读 · 72 评论