数据结构
FW Pro Plus
这个作者很懒,什么都没留下…
展开
-
求单链表的倒数第k个结点 差值思想
求一个单链表的倒数第k个结点 思路: 1.首先要求倒数第k个结点,可以想到这个结点就是从单链表的NULL位置往前走k个结点 2.显然一个指针是无法实现的,所以需要定义两个指针,当其中一个指针走到链表的NULL位置时,只需要让另一个指针与这个指针相差k个结点的位置即可达成目的。 3.一开始的指针都定义在头结点的位置,让其中一个指针先走k次,然后两个指针开始同步走,直到先走的那个指针到达NULL位置时停止,而此时后出发k次的指针所指向的结点便是我们需要得到的倒数第k个结点的位置。 具体实现找到单链表中倒数第k个原创 2020-11-28 20:43:07 · 1104 阅读 · 2 评论 -
单链表是否成环并且返回入环后的第一个结点
判断一个单链表是否有环并且返回第一个入环结点 1.首先判断这个单链表是否有环,可以利用快慢指针来进行判断 定义快慢指针同步往后走,一旦快指针和慢指针相遇,则可以说明这个单链表是有环的否则快指针会指向NULL,则说明单链表没有成环 2.要求返回入环的第一个结点可以通过画图理解如下: 假设快慢指针在环上某一结点相遇(快指针有可能已经在环上走了多圈,设为n;) 便可以得到快指针走过的路程为 :x + y + n(y+z) 而慢指针所走过的路程为 :x + y; 由于刚开始设定慢指针走一个结点的情况下,快指针走原创 2020-11-28 19:47:37 · 247 阅读 · 0 评论