剑指offer__链表类__
根据从别人那学到的代码进行过程还原。方便理解和记忆
Und.
这个作者很懒,什么都没留下…
展开
-
孩子们的游戏(python)
一,问题描述:游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一个小朋友拿到礼品。那么哪个小朋友会得到这份礼品呢?(注:小朋友的编号是从0到n-1)如果没有小朋友,请返回-1...原创 2020-06-12 01:00:21 · 1083 阅读 · 0 评论 -
删除链表中重复的节点(python)
一,题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5二,分析由于我是看别人的代码来理解过程,然后学习本题,所以过程分析也要结合代码来看。首先,我们做了个头节点叫result,并让头指针result.next指向头节点然后又做了两个指针,res和tmp,让他们分别指向头节点和链表首字母接下来比较tmp指向的值 和 tm原创 2020-06-23 14:42:38 · 805 阅读 · 0 评论 -
二叉搜索树与双向链表(python)
一,问题输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。二,分析假设有这么一个搜索树:我们先找到根节点的左孩子的最右节点,让他与根节点建立双向联系再找到根节点的右孩子的最左节点,让他与根节点建立双向联系调用递归,搞定其他的字树输出的时候要找到最左的叶子节点三,代码...原创 2020-06-22 18:36:46 · 194 阅读 · 0 评论 -
链表中环的入口结点(python)
一,问题描述:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。怎么确定有没有环?这么来做:我们做两个指针,一快一慢。快的一次前进两格,慢的一次前进一格。如果fast指针指向了None,那么说明无环,返回null如果链表有环,当快慢指针都进入环内后,必然会在某个时刻相遇。当fast和slow相遇,就把fast放回起点,slow原地不动然后两人一起出发,都每次走一步,直到他们相遇这个相遇点就是环的入口二,代码实现...原创 2020-06-11 22:18:03 · 319 阅读 · 0 评论 -
两个链表的第一个公共节点(python)
一,问题描述:输入两个链表,找出它们的第一个公共结点。二,代码及分析:代码:实现过程分析:我们分别用指针up和down来指向两个链表如果他们都不是空,就让他们遍历整个链表,直到有一方为空,跳出循环如果是up先到None,就说明pHead1短于pHead2.那他们差多少呢?我们让down继续往下跳,直到跳到None。并用k来记录他跳了几步,这样,我们就得到了两个链表的长度差k。接着,我们把up和down放回原点,并让down往前先走k步然后让他两同时往前跳,直到他两相遇,然后返回随便哪原创 2020-06-11 19:25:14 · 270 阅读 · 0 评论 -
复杂链表的复制(python)
一:问题描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)二:分析1 明确输入输出输入:一个复杂链表输出:拷贝链表的头结点2 名词解释简单来说深拷贝deepcopy:我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。原创 2020-06-11 16:47:01 · 945 阅读 · 2 评论 -
合并两个排序的链表(python)
一,题目输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。二,分析:1,明确输入输出输入:两个单调递增的链表输出:合成后的链表(满足单调不减规则)...原创 2020-06-11 13:08:50 · 455 阅读 · 0 评论 -
反转链表(python)
一,问题描述:输入一个链表,反转链表后,输出新链表的表头。二,代码三,代码分析我们一行一行来看这些代码究竟做了什么首先,left=pHeadmid=pHead.nextright=mid.next这三行定义了三个指针,分别指向如图本题代码中的“=”可以看作一个箭头,意为“指向”left.next=None 这行代码干掉了链表第一项指向第二项的指针,使其为空while right!=None:mid.next=leftleft=midmid=rightright=ri原创 2020-06-10 21:22:02 · 107 阅读 · 0 评论 -
链表中倒数第k个结点(python)
一,问题输入一个链表,输出该链表中倒数第k个结点。二,思路三,代码原创 2020-06-10 15:05:45 · 212 阅读 · 0 评论 -
从尾到头打印链表(python)
一:问题描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。二,分析1 明确输入输出输入:一个链表输出:另一个链表三,代码实现原创 2020-06-10 21:24:45 · 154 阅读 · 0 评论