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

leetcode 两两交换链表中的节点 java

两种方法:递归法和迭代法。
我首先想到的是迭代,因为我不会用递归。
如果觉得很绕的话,直接把节点都定义出来。

class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy = new ListNode(0,head);ListNode cur = dummy;// while(cur.next.next!=null){while(cur.next!=null && cur.next.next!=null ){// ListNode temp = cur.next;// cur.next=cur.next.next;// cur.next.next=temp;// temp.next=cur.next.next.next;// cur=cur.next.next;ListNode temp1 = cur.next;ListNode temp2 = cur.next.next;cur.next=temp2;temp1.next=temp2.next;temp2.next=temp1;cur=temp1;          }return dummy.next;}
}

递归法:参考了Leetcode评论区大神的方法,很直白!

/*** 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 one = head;ListNode two = head.next;ListNode three = head.next.next;//one.next=three;two.next=one;one.next=swapPairs(three);return two;}
}

相关文章:

  • 深度学习——超参数调优
  • 在Rockchip平台上利用FFmpeg实现硬件解码与缩放并导出Python接口
  • BLIP3-o:理解和生成统一的多模态模型
  • 力扣 283.移动零 (双指针)
  • 怎么开发一个网络协议模块(C语言框架)之(三) 全局实例
  • 计算机网络期末复习资料
  • 《Java vs Go vs C++ vs C:四门编程语言的深度对比》
  • 2025年渗透测试面试题总结-匿名[社招]安全工程师(中级红队)(题目+回答)
  • JS 中判断 null、undefined 与 NaN 的权威方法及场景实践
  • SQL 语言
  • Transformer 架构学习笔记
  • 楼宇自控成建筑领域关键技术,为实现建筑碳中和注入强劲技术动能
  • AI硬件革命:OpenAI“伴侣设备”——从概念到亿级市场的生态重构
  • uniapp-商城-66-shop(2-品牌信息显示,数据库读取的异步操作 放到vuex actions)
  • 数据结构与算法——链式二叉树
  • keycloak获取用户信息(go实现获取keycloak用户信息)
  • QGIS新手教程:两种方法创建点图层(手动添加 + 表格导入),支持经纬度定位与查找
  • 深度学习:从入门到实践(深度剖析版)
  • 构建Harbor私有镜像库
  • LangGraph:人工干预与自动化结合
  • 我想弄个网站/seo流量排名软件
  • 荆门哪里有专门做企业网站的/制作网站模板
  • 嘉兴做微网站多少钱/足球世界排名
  • 网站icp备案怎么查询/大亚湾发布
  • 免费软件下载网站app/阿里云域名注册入口
  • 网站主流系统/国内推广平台