本文内容:
1、题目
2、我的解答
1、题目
给定一个链表,对每两个相邻的结点作交换并返回头节点。
例如:
给定 1->2->3->4,你应该返回 2->1->4->3。
你的算法应该只使用额外的常数空间。不要修改列表中的值,只有节点本身可以更改。
2、我的解答
思路:利用可移动节点实现2元素交换值。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode swapPairs(ListNode head) {
int temp = 0;
ListNode temp$1 = head;
while(temp$1!=null&&temp$1.next!=null){
temp = temp$1.val;
temp$1.val = temp$1.next.val;
temp$1.next.val = temp;
temp$1 = temp$1.next.next;
}
return head;
}
}