给出一个单链表,不知道节点N的值,只遍历一次就可以求出中间节点,写出算法...
生活随笔
收集整理的這篇文章主要介紹了
给出一个单链表,不知道节点N的值,只遍历一次就可以求出中间节点,写出算法...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解析:在處理鏈表問題時,”快行指針“(runner,或稱第二個指針)是一種很常見的技巧??煨兄羔樦傅氖峭瑫r用兩個指針來迭代訪問鏈表,只不過其中一個比另一個超前一些。
? ? ? 設立兩個指針,比如*p和*q。p每次移動兩步,即 p = p->next->next,q每次移動一步,即 q = q->next。這樣,當p到達最后一個節點時,q就是中間節點。
算法如下:
1 void serchmid(node *head, node *mid) 2 { 3 node *temp = head; 4 while(head->next->next != NULL) 5 { 6 head = head->next->next; 7 temp = temp->next; 8 mid = temp; 9 } 10 }轉載于:https://www.cnblogs.com/freeso/p/3978285.html
總結
以上是生活随笔為你收集整理的给出一个单链表,不知道节点N的值,只遍历一次就可以求出中间节点,写出算法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Date日期比对
- 下一篇: 判断客户浏览器是否支持cookie