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

LeetCode_双指针_中等_24.两两交换链表中的节点

目录

  • 1.题目
  • 2.思路
  • 3.代码实现(Java)

1.题目

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

示例 1:

在这里插入图片描述

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

示例 2:
输入:head = []
输出:[]

示例 3:
输入:head = [1]
输出:[1]

提示:
链表中节点的数目在范围 [0, 100] 内
0 <= Node.val <= 100

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/swap-nodes-in-pairs

2.思路

(1)递归

(2)迭代

思路参考本题官方题解。

相关题目:
LeetCode_双指针_递归_简单_206.反转链表

3.代码实现(Java)

//思路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 = head.next;head.next = swapPairs(newHead.next);newHead.next = head;return newHead;}
}
//思路2————迭代
/*** 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(-1, head);ListNode p = dummy;while (p.next != null && p.next.next != null) {ListNode node1 = p.next;ListNode node2 = p.next.next;p.next = node2;node1.next = node2.next;node2.next = node1;p = node1;}return dummy.next;}
}
http://www.lryc.cn/news/64697.html

相关文章:

  • 【openGauss实战11】性能报告WDR深度解读
  • Vue3实现打字机效果
  • maven无法依赖spring-cloud-stater-zipkin如何解决?
  • 实战踩坑---MFC---CreateEvent
  • JavaWeb学习------jQuery
  • 米哈游测开岗 【一面总结】
  • 微服务 Spring Boot 整合Redis 实现优惠卷秒杀 一人一单
  • 构建OVS网络
  • 【Python】万能之王 Lambda 函数详解
  • 手把手教你怎么搭建自己的AI数字人直播间?帮你24小时不间断直播卖货
  • MySQL性能监控全掌握,快来get关键指标及采集方法!
  • sed进阶之保留空间和排除命令
  • 21安徽练习
  • 【VAR | 时间序列】应用VAR模型时的15个注意点
  • 校招在线测评题目汇总
  • 『python爬虫』05. requests模块入门(保姆级图文)
  • WPF超好用的框架Prism入门使用,上位机赶紧学起来!
  • 十个机器学习应用实例
  • 【Redis17】Redis进阶:管道
  • Django项目页面样式如何“传给”客户端浏览器
  • python 进程间通信 Queue()、Pipe()、manager.list()、manager.dict()、manager.Queue()
  • 你想要的【微前端】都在这里了! | 京东云技术团队
  • 人生若只如初见,你不来看看Django吗
  • 项目人力资源管理
  • 提供接口给第三方调用,应该注意什么
  • ESL设计概述
  • 探究C语言数组的奥秘:大小可省略的定义、内存存储、数组名、传参、指针遍历、数组指针和指针数组、柔性数组等
  • python3 强制使用任意父级相对导入,越过python相对导入限制,拒绝 ImportError
  • 面了一个4年经验的测试工程师,自动化都不会也要15k,我也是醉了····
  • Java 实现 YoloV7 人体姿态识别