[leetcode]24. Swap Nodes in Pairs
阿新 • • 發佈:2018-12-01
這題感覺沒什麼怎麼就medium了。
- 臨時加上一個空的頭結點,方便迴圈處理。
ListNode m=new ListNode(-1);
m.next=head;
head=m;
-
m是要交換的兩個節點的前驅
p是要交換的第一個,q是要交換的第二個 -
處理奇數情況,如果p是最後一個節點,則q是null,這樣就不用交換 ,直接break跳出迴圈
if(q==null)break;
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode swapPairs(ListNode head) { if(head==null)return null; ListNode m=new ListNode(-1); m.next=head; head=m; ListNode p=m.next; ListNode q=p.next; while(p!=null){ q=p.next; if(q==null)break; m.next=q; p.next=q.next; q.next=p; m=p; p=p.next; } return head.next; } }