专栏首页小詹同学Leetcode打卡 | No.24 两两交换链表中的节点

Leetcode打卡 | No.24 两两交换链表中的节点

写在前边:

欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!

PS:从第10开始,代码以图片形式给出,方便手机用户阅读,避免左右滑不便阅读,完整代码会上传GitHub上了:https://github.com/Jan1995/LeetCode


No.24 两两交换链表中的节点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

示例:

给定 1->2->3->4, 你应该返回 2->1->4->3.

说明:

  • 你的算法只能使用常数的额外空间。
  • 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

分析:这一题通过画图才能够比较直观的看出来思路,我们之前有提过链表的删除节点、交换节点位置等操作比列表简单方便,这里就是属于这交换类的啦。

首先初始状态是这样的,(图片来源于网络,手绘的太丑就不放出来了)

通过改变节点指针的指向确定新的连接方式 。

得到的结果如下:

之后依次后移循环上述操作,直到循环终止。

上述实现代码如下:

本文分享自微信公众号 - 小詹学Python(xiaoxiaozhantongxue),作者:我爱小詹

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 题型篇 | 数据结构与算法之链表系列

    如果你和小鹿一样,刚开始对链表的操作代码实现很懵的话,不妨按照小鹿经过一个月的时间对链表相关操作以及题型的整理总结,由浅入深进行适当的练习,我相信,当你真正的练...

    小小詹同学
  • Leetcode打卡 | No.21 合并两个有序链表

    将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

    小小詹同学
  • 轻松玩转 Scikit-Learn 系列 —— 你居然不知道 PCA ?

    PCA 的全称是 Principal Component Analysis,翻译过来就是主成分分析法,是数据分析中常用的数据降维方法,亦是一种学习数据表示的无监...

    小小詹同学
  • LeetCode 160:相交链表 Intersection of Two Linked Lists

    Write a program to find the node at which the intersection of two singly linked ...

    爱写bug
  • LeetCode 160: 相交链表 Intersection of Two Linked Lists

    Write a program to find the node at which the intersection of two singly linked ...

    爱写bug
  • 轻松学Pytorch-全卷积神经网络实现表情识别

    我又又一周没有更新这个系列文章了,但是我说过我会继续坚持更新下去的,今天给大家更新了一篇如何使用残差Block构建全卷积神经网络实现图像分类,对的,你没有看错就...

    OpenCV学堂
  • Linux C语言链表你学会了吗?

      链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数...

    用户6754675
  • VBA进阶:基础扩展17. 链表

    链表是一种基本的数据结构。在C语言中,由于具有指针特性,因此很容易实现链表结构。在节点中存储数据和指针,使用指针指向下一个元素的地址,形成链表,如下图1所示。

    fanjy
  • 比特币隔离见证交易格式解析(Segregated witness)

    如果你还不了解经典交易构成,请看:https://blog.csdn.net/q4878802/article/details/49638457

    sickworm
  • python实现npy格式文件转换为txt文件操作

    如果你是用pycharm作为Python的编辑器,那么控制台的buf默认为1024,如果输出数据太多,需要修改buff大小才能让

    砸漏

扫码关注云+社区

领取腾讯云代金券