Swap Nodes in Pairs

来源:互联网 发布:spss卡方检验数据输入 编辑:程序博客网 时间:2024/06/14 00:46

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.

Show Tags

Have you met this question in a real interview? 




/** * 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)            return null;        ListNode cur = head;        ListNode newHead = new ListNode(0);        ListNode end = newHead;        while(cur != null){            ListNode temp;            end.next = cur;            if(cur.next != null){                cur = cur.next;                temp = cur.next;            }else{                break;            }            end.next.next = null;            cur.next = end.next;            end.next = cur;            end = cur.next;            cur = temp;        }                return newHead.next;    }}


0 0
原创粉丝点击