题目:

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.

代码:oj测试164ms通过

  1. # Definition for singly-linked list.
  2. # class ListNode:
  3. # def __init__(self, x):
  4. # self.val = x
  5. # self.next = None
  6.  
  7. class Solution:
  8. # @param a ListNode
  9. # @return a ListNode
  10. def swapPairs(self, head):
  11.  
  12. if head is None or head.next is None:
  13. return head
  14.  
  15. dummyhead = ListNode(0)
  16. dummyhead.next = head
  17. p = dummyhead
  18.  
  19. while p.next is not None and p.next.next is not None:
  20. tmp = p.next.next.next
  21. p.next.next.next = p.next
  22. p.next = p.next.next
  23. p.next.next.next = tmp
  24. p = p.next.next
  25.  
  26. return dummyhead.next

思路

1. 建立一个虚表头hummyhead 这样方便操作一些

2. p.next始终指向要交换的下一个元素的位置

3. 先保存p.next.next.next,再移动p,p.next,p.next.next,p.next.next.next:先动p.next.next.next再动其他的。

小白我一开始先动的是p,p.next结果后面的p.next.next就丢了,其他小白别陷入这个误区,高手请略过。

Tips: 动了哪个指针,就把哪个指针上面打个×;添加了哪个指针,就在两个点之间加一根线;画画图就出来了,别光看着不动笔。

又做了一遍 第二次ac的 小失误了

  1. # Definition for singly-linked list.
  2. # class ListNode:
  3. # def __init__(self, x):
  4. # self.val = x
  5. # self.next = None
  6.  
  7. class Solution:
  8. # @param a ListNode
  9. # @return a ListNode
  10. def swapPairs(self, head):
  11. if head is None or head.next is None:
  12. return head
  13.  
  14. dummpyhead = ListNode(0)
  15. dummpyhead.next = head
  16.  
  17. p = dummpyhead
  18.  
  19. while p.next is not None and p.next.next is not None:
  20. tmp = p.next
  21. p.next = p.next.next
  22. tmp.next = p.next.next
  23. p.next.next = tmp
  24. p = p.next.next
  25.  
  26. return dummpyhead.next

leetcode 【 Linked List Swap Nodes in Pairs 】 python 实现的更多相关文章

  1. 【LeetCode练习题】Swap Nodes in Pairs

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

  2. Leetcode 线性表 Swap Nodes in Pairs

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie Swap Nodes in Pairs Total Accepted: 12511 Tota ...

  3. 【LeetCode】24. Swap Nodes in Pairs (3 solutions)

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

  4. LeetCode解题报告—— Swap Nodes in Pairs & Divide Two Integers & Next Permutation

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

  5. 【一天一道LeetCode】#24. Swap Nodes in Pairs

    一天一道LeetCode系列 (一)题目 Given a linked list, swap every two adjacent nodes and return its head. For exa ...

  6. [LeetCode 题解]:Swap Nodes in Pairs

    前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html   1.题目描述 Given a li ...

  7. leetcode 题解 || Swap Nodes in Pairs 问题

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

  8. [Linked List]Swap Nodes in Pairs

    Total Accepted: 73777 Total Submissions: 219963 Difficulty: Medium Given a linked list, swap every t ...

  9. 【LeetCode】24. Swap Nodes in Pairs

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

随机推荐

  1. April 12 2017 Week 15 Wednesday

    Genius often betrays itself into great errors. 天才常被天才误. Genius can help us get greater achievements, ...

  2. QT5中两个窗体之间传递信息(值)

    一个窗体A调用另一个窗体B: 1)包含窗体B的头文件#include"B.h" 2)在窗体A中增加slots函数: public slots: void infoRecv(QStr ...

  3. 利用Js或Css滤镜实现IE6中PNG图片半透明效果 IE6PNG妥妥的

    接下来介绍几种PNG图片在IE6中不透明的解决办法 1.用自己的PNG,让IE6一边去吧 首先制作PNG图片的时候,另存为一个GIF图片,因为IE6是支持GIF图片透明,然后在css定义 .pngte ...

  4. IOS 拼接按钮文字

    NSMutableString *tempAnswerTitle=[[NSMutableString alloc]init]; for(UIButton *answerBtn in self.answ ...

  5. 温故而知新:Asp.Net中如何正确使用Session

    原文链接作者:菩提树下的杨过出处:http://yjmyzz.cnblogs.com Asp.Net中的Session要比Asp中的Session灵活和强大很多,同时也复杂很多:看到有一些Asp.Ne ...

  6. vuejs动态组件和v-once指令

    场景,点击某个按钮,两个子组件交替显示 <div id='root'> <child-one v-if='type==="child-one"'></ ...

  7. 【转】基于JavaMail的Java邮件发送

    http://blog.csdn.net/xietansheng/article/details/51673073 http://blog.csdn.net/xietansheng/article/d ...

  8. 读取当前路径,列出xls文件

    import java.io.File; public class GetCurrentDirectory { public String GetDirectory() { File director ...

  9. iOS之旅--隐藏(去除)导航栏底部横线

    iOS之旅--隐藏(去除)导航栏底部横线 iOS开发大部分情况下会使用到导航栏,由于我司的app导航栏需要与下面紧挨着的窗口颜色一致,导航栏底部的横线就会影响这个美观,LZ使用了以下方法.觉得不错,分 ...

  10. 【CodeBase】PHP将数组键名转成变量名

    <?php /** * php 把数组中的键名所为变量名键值作为变量名 */ $arr=array('a'=>1,'b'=>2,'c'=>3,'d'=>5,'e'=> ...