leetcode92 反轉鍊錶 II

2021-08-28 02:43:52 字數 742 閱讀 9282

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明:1 ≤ m ≤ n ≤ 鍊錶長度。

示例:

輸入:1->2->3->4->5->null, m = 2, n = 4輸出:1->4->3->2->5->null
思路:

先往後遍歷找到需要反轉的節點作為起點(count==m),然後按照劍指offer:反轉鍊錶 的思路,設定curr,pre,pnext三個指標,把m到n之間的節點反轉,最後pre指向第n個節點,curr指向第n+1個節點

找到需要反轉的節點時,需要用start記錄下第m個節點,用pres記錄下start之前乙個指標,在完成節點反轉後,還需要處理頭尾的反轉,(a)start應該要指向第n+1個節點(curr),(b)pres指向第n個節點。要特別注意,如果start=head,即m=1,此時pres=null,應該直接令第n個節點為新的頭結點。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

start->next=curr;

if(m==1)

else

}else

}return head;

}};

leetcode 92反轉鍊錶

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明 1 m n 鍊錶長度。示例 輸入 1 2 3 4 5 null,m 2,n 4 輸出 1 4 3 2 5 null definition for singly linked list.public class listnode class...

LeetCode 92 反轉鍊錶 II

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明 1 m n 鍊錶長度。示例 輸入 1 2 3 4 5 null,m 2,n 4 輸出 1 4 3 2 5 null 5ms definition for singly linked list.public class listnode c...

LeetCode 92 反轉鍊錶ii

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明 1 m n 鍊錶長度。示例 輸入 1 2 3 4 5 null,m 2,n 4 輸出 1 4 3 2 5 null 思路 可以根據反轉的起始點將鍊錶分為三個部分,反轉中間部分,結束後將三個鍊錶連線到一起即可。這裡需要注意的是,中間鍊錶反轉...