赞
踩
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例 1:
输入: head = [1,2,3,4]
输出:[2,1,4,3]
示例 2:
输入: head = []
输出:[]
示例 3:
输入: head = [1]
输出:[1]
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode swapPairs(ListNode head) { if(head==null || (head!=null && head.next==null)) return head; ListNode p=head; ListNode pre=head; ListNode q=head.next; head=q; p.next=q.next; q.next=p; pre=p; p=p.next; if(p!=null){ q=p.next; } while(p!=null && q!=null){ p.next=q.next; q.next=p; pre.next=q; pre=p; p=p.next; if(p!=null){ q=p.next; } } return head; } }
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。