您的位置:首页 > Web前端 > Node.js

Swap Nodes in Pairs:交换链表数组相邻元素的值

2017-12-06 08:22 459 查看
Given a linked list, swap every two adjacent nodes and return its head.

For example,

Given 
1->2->3->4
, you should return the list as 
2->1->4->3
.

Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
思路:从头遍历,每两个为一组,难点在于要注意null节点的判断,注意每组的第一个为空时就可以返回了。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode H = new ListNode(0);
H.next = head;
ListNode l , r;
if(head==null){
return head;
}else{
l = head;
}
if(head.next==null){
return head;
}else{
r = head.next;
}
while(l!=null&&r!=null){
int temp = l.val;
l.val = r.val;
r.val = temp;
System.out.println(l.val+" "+r.val);
l = (r.next!=null)?r.next:null;
if(l==null){
return H.next;
}
r = (l.next!=null)?l.next:null;
}
return H.next;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: