算法与写题记录
文章平均质量分 73
分享一些小技巧
好好好OVO
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指offer---二叉树(3)
那么我们可以从后序遍历的末尾找到根节点,找到第一个大于根节点的值的位置,那么从这个节点开始,一直到根节点的前一个节点为止,这一块就是右子树。那么知道了右子树与根节点的位置,剩下的就是左子树的位置。给你一个后序的遍历序列,那么根节点一定在序列末尾,而这是一棵二叉搜素树,这是递归开始的地方,他会一直递归到树的左叶子节点,也就是我们二叉链表开头的位置。6是根节点,8,9,10是右子树,那么前面就是左子树。我们知道,二叉搜索树的中序遍历就是一个有序的序列。比如:7,5,8,9,10,6。原创 2024-03-15 20:57:36 · 513 阅读 · 1 评论 -
剑指offer----二叉树(2)
想法也很自然:由于先序遍历根节点是在第一个位置,所以我们可以利用这样一个特性,在中序遍历的序列中找到根节点的位置,在中序遍历中,根节点的左边位置是左子树,右边是右子树。(2) 这个就有点难理解,其实仔细想想也很好明白,两个树如果其中有一棵树是空的,那么我们就认为他就是另一颗树节点相同(每棵树都有空节点)那么同样的在左子树中继续找到左子树的根节点,按照上面的步骤继续下去,直到到叶子节点位置。(2)再在A树中找与B树相同结构的节点。注意:这里判断树是否是另一棵树的子树时,不能让B树为空,空树是没有意义的。原创 2024-03-15 20:28:23 · 422 阅读 · 1 评论 -
剑指offer---二叉树(1)
遍历二叉树,由于是二叉搜索树,所以,如果按照中序输出的话,就是一个有序的节点顺序(小到大)。那么我们就按照中序输出的方式,遍历到哪个节点就给他标号,找到我们要找的号码,返回输出就行。还有另外一种方法,即用栈模拟的方式来遍历二叉树。我们先把左子树遍历完,再去把其他部分的节点进行遍历。题目内容一句话概括,就是把二叉树排序好后的节点,返回第k个节点。与上题一样也有两种方法。模拟遍历与递归遍历。原创 2024-03-12 19:59:34 · 397 阅读 · 1 评论 -
二叉树以及多叉树一些小技巧
二叉树的前序,中序,后序遍历想必这些概念大家都应该了解。这里,我就不多介绍了。以及前序遍历的动态图对于各个位置的遍历,其时刻对应节点的切换如下图红色箭头表示后序往回走;蓝色箭头表示前序往下走;黑色弧线表示中序节点的切换。。哎,我们是不是有一个算法就是有一个往回走的操作?没错,那就是回溯,即撤销操作。回溯在二叉树里面,在前序做你想要的操作,在后序撤销操作。原创 2024-03-12 13:06:43 · 978 阅读 · 1 评论 -
剑指offer--链表(2)
那么慢指针走了nb步,而要进入环的入口,要走a+lb步(l为整数),也就是说,此时慢指针只需要走a步就可到达环的入口,那么我们不妨把快指针移动到表头,然后一步一步走a步,此时快慢指针必定相遇,就找到了环入口。但是这里多了一个随机指针,也就是说,如果按照老方法,随机指针的位置你是不好处理的。解释一下:1的随机指针指向3 | 2的随机指针指向5 | 3的随机指针指向null | 4的随机指针指向2。方法2:哈希,遍历把链表节点与值存入哈希表中,记录节点出现的次数,如果节点对应的次数为2,那么找到环入口。原创 2024-03-04 22:35:03 · 828 阅读 · 1 评论 -
二叉树的建立及遍历(3000字详解)
二叉树遍历(3000字详解)原创 2023-10-28 22:53:35 · 127 阅读 · 0 评论 -
剑指offer---链表(1)
就是说,有两个排好序的链表,把这两个链表重新结合成一个新链表,得到的新链表也得是有序的。1:利用栈的特性,把链表节点一个个入栈,之后再弹出,得到的链表就是反转后的结果。2:利用双指针,每次取下一个节点,就把置为头节点。原创 2024-03-03 22:42:04 · 367 阅读 · 0 评论 -
详解八大排序(冒泡、插入、选择、希尔、归并、快排、堆排、计数)
详解八大排序(冒泡、插入、选择、希尔、归并、快排、堆排、计数)原创 2024-01-01 16:41:40 · 1128 阅读 · 0 评论 -
位运算实现加减乘除——看不懂你锤我
位运算实现加减乘除详解,不会用到+-*/。看完还不会你锤我原创 2023-11-14 19:04:31 · 538 阅读 · 0 评论 -
基数排序与桶排序
基数排序与桶排序,接上次八大排序之后原创 2024-01-01 20:51:37 · 403 阅读 · 0 评论
分享