24 两两交换链表中的节点

效率一般 

class Solution {
    public static ListNode swapPairs(ListNode head) {
        if(head==null||head.next==null)return head;
        ListNode l = head;
        ListNode r = head.next;
        //第一次交换
        ListNode ll = l;
		l.next = r.next;
		r.next = l ;
		ListNode result = r;
		l = l.next ;
		if(l!=null)
		r = l.next;		
		//第2。。。N次交换
		while(l!=null&&l.next!=null) {
			l.next = r.next;
			r.next = l ;
			ll.next = r;
			ll = l;
			l = l.next ;
			if(l!=null)
			r = l.next;
		}
		return result;
    }
}

 

你可能感兴趣的:(LeetCode题解)