题解 | #两两交换链表的节点#

两两交换链表的节点

http://www.nowcoder.com/practice/71f95c23810349f782a1aa6c9bd714b4

前排怎么说——中山桥还就是马师傅
import java.util.*;
public class Solution {
    public ListNode swapLinkedPair (ListNode head) {
        if(head.next==null||head.next==null) return head;
        ListNode p=head;
        ListNode t=p.next;
        p.next=t.next;
        t.next=p;  //前两个结点先交换,然后保存第一个头结点t
        while(p.next!=null&&p.next.next!=null){
            ListNode con=p; //用来把后面交换的结点和前面交换成功的结点连接在一起
            p=p.next;
            ListNode tmp=p.next;
            p.next=tmp.next;
            tmp.next=p;
            con.next=tmp;
        }
        return t;
    }
}

全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务