首页 > 代码库 > [LeetCode] Swap Nodes in Pairs

[LeetCode] Swap Nodes in Pairs

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.

 

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    public ListNode swapPairs(ListNode head) {        if (head == null || head.next == null) return head;                ListNode nowNode = new ListNode(0);        nowNode.next = head;        head = head.next;                while (nowNode.next != null && nowNode.next.next != null) {            ListNode tmp = nowNode.next;            nowNode.next = tmp.next;            tmp.next = nowNode.next.next;            nowNode.next.next = tmp;            nowNode = tmp;        }                return head;    }}

 

[LeetCode] Swap Nodes in Pairs