反轉鏈表 II
阿新 • • 發佈:2018-05-24
nbsp tno 反轉 代碼 完成 bsp ext 定義 stat
反轉從位置 m 到 n 的鏈表。請使用一趟掃描完成反轉。
說明:
1 ≤ m ≤ n ≤ 鏈表長度。
示例:
輸入: 1->2->3->4->5->NULL, m = 2, n = 4 輸出: 1->4->3->2->5->NULL
解題思路:
將第m個節點之後的(n-m)個節點依次插入第m個節點之前。
如示例中
將節點3插入1 、2中,1->3->2->4->5->NULL
將節點4插入1 、3中,1->4->3->2->5->NULL
定義兩個指針p,q分別指向節點1與節點2,將q後面的節點插入p後面。
代碼如下:
public static ListNode test(ListNode head, int m, int n) { if (m == n) return head; ListNode h = new ListNode(0); h.next = head; ListNode p = h; for (int i=1; i<m; i++) p = p.next; ListNode q = p.next; ListNode temp;for (int i=m; i<n; i++) { temp = q.next; q.next = temp.next; temp.next = p.next; p.next = temp; } return h.next; }
反轉鏈表 II