当前位置: 首页 > news >正文

蓝桥杯入门即劝退(十九)两两交换链表

-----持续更新蓝桥杯入门系列算法实例--------

如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流!

你的点赞、关注、评论、是我创作的动力!

-------希望我的文章对你有所帮助--------

一、题目描述

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例 1:

 

输入:head = [1,2,3,4]
输出:[2,1,4,3]

示例 2:

输入:head = []
输出:[]

示例 3:

输入:head = [1]
输出:[1]

二、解题思路

  本题有较为简洁的递归写法,有兴趣可以去了解一下,由于本人尚未完全理解此题递归的精髓,因此使用常规解法来解题。

1、使用虚拟头节点,指向head头节点。

2、引入一个中间变量,用于临时存储下一组进行反转的节点。

3、引入First、Second节点,实现两个节点指向的反转。

4、将Second节点指向虚拟头节点,First节点指向Second节点。

5、再将First节点指向临时节点

6、重复以上步骤即可得到两两反转,最后返回即可。

 

三、代码

public ListNode swapPairs(ListNode head) {ListNode pHead = new ListNode(-1);pHead.next = head;ListNode temp;ListNode Fnode;ListNode Snode;ListNode cur = pHead;while (cur.next != null && cur.next.next != null) {temp = cur.next.next.next;Fnode = cur.next;Snode = cur.next.next;cur.next=Snode;Snode.next=Fnode;Fnode.next=temp;cur=Fnode;}return pHead.next;}

发文不易,恳请大佬们高抬贵手!


点赞:随手点赞是种美德,是大佬们对于本人创作的认可!


评论:往来无白丁,是你我交流的的开始!


收藏:愿君多采撷,是大佬们对在下的赞赏!

 

 

http://www.lryc.cn/news/16540.html

相关文章:

  • 【Java 面试合集】接口以及抽象类
  • LeetCode 2391. 收集垃圾的最少总时间
  • 【PMP考试最新解读】第七版《PMBOK》应该如何备考?(含最新资料)
  • 金三银四软件测试面试如何拿捏面试官?【接口测试篇】
  • Hive基操
  • CSS(配合html的网页编程)
  • MATLAB/Simulink 通信原理及仿真学习(三)
  • 如何解决过拟合与欠拟合,及理解k折交叉验证
  • Kotlin 34. recyclerView 案例:显示列表
  • JAVA练习58-汉明距离、颠倒二进制位
  • 优炫数据库百城巡展,成都首站圆满举行
  • 【20230210】二叉树小结
  • openCV—图像入门(python)
  • 关于一个Java程序员马上要笔试了,临时抱佛脚,一晚上恶补45道简单SQL题,希望笔试能通过
  • PyTorch深度学习实战
  • leetcode 1011. Capacity To Ship Packages Within D Days(D天内运送包裹的容量)
  • 支持向量机SVM详细原理,Libsvm工具箱详解,svm参数说明,svm应用实例,神经网络1000案例之15
  • Mac 上搭建 iOS WebDriverAgent 环境
  • python学习笔记之例题篇NO.3
  • 【Kubernetes】第七篇 - Service 服务介绍和使用
  • Linux 终端复用器Tmux
  • Hadoop集群模式安装(Cluster mode)
  • PTA L1-054 福到了(详解)
  • python -- 魔术方法
  • 「JVM 编译优化」提前编译器
  • Golang channel 用法与实现原理
  • jackson 序列化、反序列化的时候第一个大写单词变成小写了(属性设置不成功)
  • 如何判断机器学习数据集是否是线性的
  • 后端基础SQL
  • Ubuntu 18.04 上编译和安装内核(内核源码版本)