力扣题24两两交换链表中的节点
发布日期:2022-03-04 11:48:25 浏览次数:10 分类:技术文章

本文共 1374 字,大约阅读时间需要 4 分钟。

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

示例 1:

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

输出:[2,1,4,3]
示例 2:

输入:head = []

输出:[]
示例 3:

输入:head = [1]

输出:[1]

1.链表的题目,一般都会自己手动加一个哨兵头节点,这样就不需要对头节点这种特殊情况进行判断,方便很多。然后就是链表中经常使用多指针方法,需要画出关系图,针对每个节点的执向要弄清楚,对指针的更新也要注意空指针异常的问题。

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode() {} *     ListNode(int val) { this.val = val; } *     ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */class Solution {    public ListNode swapPairs(ListNode head) {        if (head == null || head.next == null) {//特殊情况的输入            return head;        }        ListNode newHead = new ListNode(0);//创建一个哨兵头节点        newHead.next = head;        ListNode pre = newHead;        ListNode first = head;        ListNode second = head.next;        while (first != null && second != null) {            //修改节点间关系,注意要防止节点的丢失            ListNode temp1 = pre.next;            ListNode temp2 = second.next;            pre.next = second;            second.next = temp1;            temp1.next = temp2;            //更新指针            pre = temp1;            //注意对空指针的判断            if (pre.next == null || pre.next.next == null) {                break;            }             first = pre.next;            second = pre.next.next;        }        return newHead.next;    }}

题源:

转载地址:https://blog.csdn.net/xxyneymar/article/details/122567488 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SpringBoot入门(四)请求参数处理(一)
下一篇:SpringBoot入门(五)请求参数处理(二)

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月11日 19时41分42秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

matlab6.0序列号,MFC软件获取USB设备的制造商、产品、序列号 2019-04-21
matlab中多边形滤波器,几种常见空间滤波器MATLAB实现 2019-04-21
matlab fminimax 例子,Matlab应用实例(8)—fminimax 2019-04-21
php://filter利用条件,浅谈php://filter技巧 2019-04-21
mplayer-php,mplayer+smplayer 前后端播放器安装 2019-04-21
oracle昨日时间,。。今日,昨日,上周,本月,本年,按时间统计总金额 2019-04-21
php验证卡号,PHP验证信用卡卡号是否正确函数 2019-04-21
mpvue微信小程序动画_推荐两个微信小程序开发框架 2019-04-21
固态硬盘分为哪几种_零基础玩转固态硬盘 深度排雷 买SSD掌握这些就够了 2019-04-21
调python返回图片_Python异常处理,3个好习惯分享给你 2019-04-21
15拆解_收藏:15款劲芯微芯片无线充产品拆解 2019-04-21
弹出u盘_都说:U盘直接拔出不会丢失文件,“安全弹出”形同虚设,对吗? 2019-04-21
怎么查看elementui版本_2021新年 Vue3.0 + Element UI 尝鲜小记 2019-04-21
adreno630gpu参数_小米8搭载Adreno 630图形处理器 比荣耀play上的GPU Turbo更成熟 2019-04-21
带bitlocker解密的pe_如何在PE下解锁bitlocker 2019-04-21
lj245a引脚功能图_谁找到74254,74LS245芯片引脚的功能和功能图啊? 2019-04-21
sts 创建webservice项目_通过eclipse将Java生成webservice | 学步园 2019-04-21
python数字字符串和数字相加_数字和字符串 2019-04-21
python风控模型举例_一文搞定风控模型6大核心指标(附代码) 2019-04-21
java arraylist 写入文件_java-将自定义对象的ArrayList写入文件 2019-04-21