标签:
关键是想好swap 的function怎么写
我的做法是输入输出两支点pre& end,中间的两个node swap
public class Solution { public ListNode swapPairs(ListNode head) { if(head==null || head.next==null) return head; ListNode h = new ListNode(-1); h.next = head; ListNode pre = h; ListNode end = head.next; while(end!=null && end.next!=null){ end = end.next; swapNodes(pre,end); pre = pre.next.next; end = end.next; } if(end!=null && end.next==null) swapNodes(pre, end.next); return h.next; } public void swapNodes(ListNode pre, ListNode end){ ListNode tmp = pre.next; pre.next = pre.next.next; pre.next.next = tmp; tmp.next = end; } }
标签:
原文地址:http://www.cnblogs.com/jiajiaxingxing/p/4397361.html