lintcode 32 翻轉鏈表

image.png
  • 思路


    image.png

    每次遍歷的節(jié)點拿到最前面,作為新的head節(jié)點。

head=p.next

那么2節(jié)點的next地址不能丟了。
p.next=head.next
然后考慮2的后面是誰?
head.next=q
如果沒有這個q,head.next=p。第三個節(jié)點出現(xiàn)的時候,就會把中間的丟了。因為每次新出來的節(jié)點要連接上次出來的點。需要有個引用指向它。p指向順序遍歷的尾節(jié)點。head是每次出來的那個點。q用來指向head需要連接到的點

/**
 * Definition for ListNode.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int val) {
 *         this.val = val;
 *         this.next = null;
 *     }
 * }
 */ 
public class Solution {
    /**
     * @param head: The head of linked list.
     * @return: The new head of reversed linked list.
     */
    public ListNode reverse(ListNode head) {
        if(head==null||head.next==null){
            return head;
        }
        ListNode p = head;
       ListNode q = head;
        while(p.next!= null){
           head=p.next;
           p.next=head.next;
           head.next=q;
           q=head;           
        }
        return head;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 翻轉一個鏈表 樣例:給出一個鏈表1->2->3->null,這個翻轉后的鏈表為3->2->1->null
    jose_dl閱讀 185評論 0 0
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,927評論 0 33
  • include<iostream> using namespace std; //單鏈表 typedef stru...
    jmychou閱讀 507評論 0 0
  • //leetcode中還有花樣鏈表題,這里幾個例子,冰山一角 求單鏈表中結點的個數(shù)----時間復雜度O(n)這是最...
    暗黑破壞球嘿哈閱讀 1,658評論 0 6
  • 大家好,這次不是我的作品,是轉載著名的廈門大學教授易中天的一段話!覺得說的很實在,所以分享! 再過若干年,...
    石利蕊閱讀 310評論 0 1

友情鏈接更多精彩內(nèi)容