首页 > 其他分享 >[LeetCode Hot 100] LeetCode24. 两两交换链表中的节点

[LeetCode Hot 100] LeetCode24. 两两交换链表中的节点

时间:2023-12-11 21:14:13浏览次数:29  
标签:ListNode cur val next 链表 Hot LeetCode24 node2 节点

题目描述

思路:

  • 创建dummy节点,令dummy.next = head。令cur表示当前到达的节点,初始时cur = dummy。每次需要交换cur后面的两个节点。
  • 如果cur的后面没有节点或者只有一个节点,则没有更多的节点需要交换,因此结束交换。否则,获得cur后面的两个节点node1和node2,通过更新节点的指针关系实现两两交换节点。
cur.next = node2;  // 步骤1
node1.next = node2.next; // 步骤2
node2.next = node1; // 步骤3

方法一:

/**
 * 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) {
        ListNode dummy = new ListNode(0, head);
        ListNode cur = dummy;
        while (cur.next != null && cur.next.next != null) {
            ListNode node1 = cur.next;
            ListNode node2 = cur.next.next;
            cur.next = node2;
            node1.next = node2.next;
            node2.next = node1;
            cur = node1;
        }
        return dummy.next;
    }
}

标签:ListNode,cur,val,next,链表,Hot,LeetCode24,node2,节点
From: https://www.cnblogs.com/keyongkang/p/17895540.html

相关文章

  • [LeetCode Hot 100] LeetCode148. 排序链表
    题目描述思路一:堆排序、小顶堆定义一个最小堆将链表的所有节点放入一个最小堆中直接用队列弹出的最小值依次覆盖掉原链表的值方法一:/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}......
  • [LeetCode Hot 100] LeetCode138. 随机链表的复制
    题目描述思路一:添加"小弟"根据遍历到的原节点创建对应的新节点,每个新创建的节点是在原节点后面。原节点i的随机指针(如果有的话),指向的是原节点j,那么新节点i的随机指针,指向的是原节点j的next最后将两个链表分开,再返回新链表就可以思路二:使用哈希表首先创建一个哈希表......
  • [LeetCode Hot 100] LeetCode25. K个一组翻转链表
    题目描述思路:判断链表中是否足够k个元素再将这k个元素内部翻转一下将前后端点连接的指针变化一下方法一:/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval)......
  • [持续更新][数据结构][算法]涵盖线性表、栈、链表、队列、图、动态规划、分治递归、回
    备考考点整理内部排序表格树的主要考点二叉树的常考紧紧抓住\(n_0=n_2+1\)\(n=n_0+n_1+n_2...n_m\)\(n=n_1+2*n_2+3*n_3...m*n_m\)+1哈夫曼树没有度为1的结点,也就是\(n_1=0\)完全二叉树常考总结最大岛屿问题(dfs模板)#include<iostream>#include<algorith......
  • 141. 环形链表
    1.题目介绍给你一个链表的头节点\(head\),判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪\(next\)指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数\(pos\)来表示链表尾连接到链表中的位置(索引从0开始)。注意:\(pos\)不作为参数进行......
  • Adobe Photoshop Elements 2024 v24.0 简体中文版 | 中文直装版
    下载:资源下载介绍:PhotoshopElements2024(简称PSE即PS简化版)是一款定位在数码摄影领域的全新的图像处理软件,该软件包括了专业版的大多数特性,只有少量的简化选项,提供了调整颜色和光线,去除划痕,修复旧照片,打开闭合的眼睛等实用功能,非常方便。除此之外,这款软件操作简单,使用方......
  • 234. 回文链表
    题目介绍给你一个单链表的头节点\(head\),请你判断该链表是否为回文链表。如果是,返回\(true\);否则,返回\(false\)。示例1:输入:head=[1,2,2,1]输出:true示例2:输入:head=[1,2]输出:false提示:链表中节点数目在范围\([1,10^{5}]\)内\(0<=Node.val<=9\)进......
  • Adobe Photoshop 2023最新激活(附图文教程)
    以前PS喜欢用这个,不过现在简单搞搞在手机上也能搞定。好久不用了,但偶尔需要用的时候还挺麻烦。有专业需求的小伙伴拿走不谢。介绍Photoshop软件是一个非常强大的数字图像处理和编辑软件,具有直观易用的用户界面,各种图像编辑和处理工具,各种图层和蒙版功能,各种滤镜和插件。无论是初学......
  • 代码 测试用例 测试结果 测试结果 24. 两两交换链表中的节点
    给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1] 提示:链表中节点的数目在范围 [0,100] 内......
  • 160.相交链表
    1.题目介绍给你两个单链表的头节点 \(headA\)和\(headB\),请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回\(null\)。图示两个链表在节点\(c1\)开始相交:题目数据保证整个链式结构中不存在环。注意,函数返回结果后,链表必须保持其原始结构......