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.
题意:给定一个链表,成对交换邻接的节点
解决思路:每次移动节点向前移动两位,然后交换就可以了
代码:
public class Solution {
public ListNode swapPairs(ListNode head) {
ListNode newHead = new ListNode(0);
newHead.next = head;
for(ListNode curr = newHead; curr.next != null && curr.next.next != null; curr = curr.next.next){
curr.next = swap(curr.next, curr.next.next);
}
return newHead.next;
}
private ListNode swap(ListNode prev, ListNode after){
prev.next = after.next;
after.next = prev;
return after;
}
}

本文介绍了一种链表操作算法,即成对交换相邻节点的方法,并提供了详细的实现步骤及代码示例。
347

被折叠的 条评论
为什么被折叠?



