leetcode 24. Swap Nodes in Pairs

转载 2016年05月30日 16:26:15

题目

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  ListNode swapPairs(ListNode head) {  
        if(head == null){  
            return null;  
        }  
        // 当只有一个元素的情况  
        if(head.next == null){  
            return head;  
        }  
        ListNode i = head;  // i指向第1个  
        ListNode j = i.next;    // j指向第2个  
        ListNode k = j.next;    // k指向第3个  

        head = head.next;     
        while(j != null){  
            j.next = i;  
            if(k!=null && k.next!=null){    // 当有偶数个节点   
                i.next = k.next;  
            }else{      // 当有奇数个节点  
                i.next = k;  
            }  

            // 更新i,j,k的值,前进两格  
            i = k;  
            if(k != null){  
                j = k.next;  
            }else{  
                j = null;  
            }  
            if(k!=null && k.next!=null){  
                k = k.next.next;  
            }else{  
                k = null;  
            }  
        }  
        return head;  
    }  

相关文章推荐

LeetCode之24----Swap Nodes in Pairs

题目: Given a linked list, swap every two adjacent nodes and return its head. For example, Gi...

[leetcode: Python]24. Swap Nodes in Pairs

Given a linked list, swap every two adjacent nodes and return its head.For example, Given 1->2->3->...
  • NXHYD
  • NXHYD
  • 2017年05月19日 15:37
  • 192

leetcode-24 Swap Nodes in Pairs

问题描述地址:https://leetcode.com/problems/swap-nodes-in-pairs/ 描述: Given a linked list, swap every two...

LeetCode OJ-24-Swap Nodes in Pairs

题目:Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2...

LeetCode24. Swap Nodes in Pairs

LeetCode24. Swap Nodes in Pairs

( Leetcode 24) Swap Nodes in Pairs

题目:Swap Nodes in Pairs Given a linked list, swap every two adjacent nodes and return its head. ...

LeetCode 24. Swap Nodes in Pairs 解题报告

LeetCode 24. Swap Nodes in Pairs 解题报告题目描述Given a linked list, swap every two adjacent nodes and retu...

leetCode 24. Swap Nodes in Pairs (双数交换节点) 解题思路和方法

Swap Nodes in Pairs  Given a linked list, swap every two adjacent nodes and return its head. F...

LeetCode-24.Swap Nodes in Pairs

Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3-...

LeetCode 24 Swap Nodes in Pairs(交换序列中的结点)(Linked List)

翻译给定一个链表,调换每两个相邻节点,并返回其头部。例如, 给定 1->2->3->4, 你应该返回的链表是 2->1->4->3。你的算法必须使用唯一不变的空间。你也不能修改列表中的值,只有节点本身...
  • NoMasp
  • NoMasp
  • 2015年11月12日 18:43
  • 3931
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode 24. Swap Nodes in Pairs
举报原因:
原因补充:

(最多只允许输入30个字)