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;  
    }  

LeetCode24. Swap Nodes in Pairs简单到一次性通过

Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-...
  • booirror
  • booirror
  • 2016年02月02日 21:01
  • 1505

【LeetCode-24】Swap Nodes in Pairs(C++)

交换链表中每两个相邻的节点 不能改变节点的值 智能改变节点。 递归法: class Solution { public: ListNode* swapPairs(ListNode* head)...
  • liujiayu1015
  • liujiayu1015
  • 2016年08月08日 16:57
  • 126

Swap Nodes in Pairs -- LeetCode

原题链接: http://oj.leetcode.com/problems/swap-nodes-in-pairs/  这道题属于链表操作的题目,思路比较清晰,就是每次跳两个节点,后一个接到前面,前一...
  • linhuanmars
  • linhuanmars
  • 2014年02月26日 01:37
  • 12015

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

翻译给定一个链表,调换每两个相邻节点,并返回其头部。例如, 给定 1->2->3->4, 你应该返回的链表是 2->1->4->3。你的算法必须使用唯一不变的空间。你也不能修改列表中的值,只有节点本身...
  • NoMasp
  • NoMasp
  • 2015年11月12日 18:43
  • 4282

24. Swap Nodes in Pairs [easy] (Python)

题目链接https://leetcode.com/problems/swap-nodes-in-pairs/题目原文 Given a linked list, swap every two adj...
  • coder_orz
  • coder_orz
  • 2016年05月29日 15:09
  • 959

24. Swap Nodes in Pairs -leetcode-java

今天一下午被这道题困惑好久,也是够笨呀。 Given a linked list, swap every two adjacent nodes and return its head. ...
  • hahawhyha
  • hahawhyha
  • 2016年05月26日 18:54
  • 601

[LeetCode] 024. Swap Nodes in Pairs (Medium) (C++/Python)

[LeetCode] 024. Swap Nodes in Pairs (Medium) (C++/Python)
  • hcbbt
  • hcbbt
  • 2015年03月05日 14:39
  • 1623

LeetCode 24_Swap Nodes in Pairs

这几天真是忙的不可开交,主要是因为要学的东西太多了,本人又有完美主主义倾向,所以对于一些知识就非常浪费时间,这样做有点好处就是理解深刻,但缺点就是太费时间。话说回来,算法这种东西,是有必要深追究的,因...
  • cyfcsd
  • cyfcsd
  • 2015年11月13日 21:07
  • 298

Leetcode_24_Swap Nodes in Pairs

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43302355 Given a linked li...
  • pistolove
  • pistolove
  • 2015年01月30日 07:37
  • 1299

(Java)LeetCode-24. Swap Nodes in Pairs

Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-...
  • u012848330
  • u012848330
  • 2016年06月02日 16:53
  • 479
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode 24. Swap Nodes in Pairs
举报原因:
原因补充:

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