链表题目----5 相交链表 和 环形链表 和 返回链表开始入环的第一个节点
生活随笔
收集整理的這篇文章主要介紹了
链表题目----5 相交链表 和 环形链表 和 返回链表开始入环的第一个节点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
相交鏈表
思路
環形鏈表
思路
返回鏈表開始入環的第一個節點
思路
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode *detectCycle(struct ListNode *head) {if(head == NULL){return NULL;}struct ListNode *fast =head;struct ListNode *slow =head;while(1){//先找相遇點fast = fast->next;if(fast == NULL){return NULL;}fast =fast->next;if(fast == NULL){return NULL;}slow =slow->next;if(fast == slow){break;}}//一個從相遇點開始,另外一個從起始點開始,他們的相遇點就是開始入環的第一個結點struct ListNode *n1 =head;struct ListNode *n2 =slow;while( n1 != n2){n1=n1->next;n2=n2->next;} return n1; }總結
以上是生活随笔為你收集整理的链表题目----5 相交链表 和 环形链表 和 返回链表开始入环的第一个节点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有哪些百看不厌的电视机剧推荐?
- 下一篇: 链表题目---6 复制带随机指针的链表