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

力扣每日刷题

24. 两两交换链表中的节点 - 力扣(LeetCode)

递归写法

做题思路:把需要交换的两个数的前一个数作为参数传入,然后使用一个变量保存这两个变量的后一个数,交换这个两个数,最后把第二个数(原第一个数)的next指向这个方法(next作为参数传入)的返回值,最后返回第一个数(原第二个数)。结束条件为最后只剩下一个值或者刚好交换完。

代码:

public ListNode swapPairs(ListNode head) {//结束条件if(head==null||head.next==null){return head;}ListNode next,p,q;p=head;q=head.next;next=q.next;q.next=p;p.next=swapPairs(next);return q;
}
迭代写法

做题思路:和递归相似。把原本的head前置用于保证链表不断开并且检测是否可以继续进行交换。使用前置节点代替了递归的功能。

代码:

public ListNode swapPairs(ListNode head) {ListNode pre,t,p;pre=t=new ListNode(1,head);while(pre.next!=null&&pre.next.next!=null){head=pre.next;p=pre.next.next;head.next=p.next;p.next=head;pre.next=p;pre=head;}return t.next;
}

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

相关文章:

  • QT的信号和槽页面的应用
  • 【Java】线程相关面试题 (基础)
  • 【数字化】华为一体四面细化架构蓝图
  • frameworks 之 WMS添加窗口流程
  • 搜索方法归类全解析
  • 第1关:简易考试系统之用户注册
  • VMware的三种网络模式——在NAT模式下开放接口为局域网内其他主机提供服务
  • 智慧地下采矿:可视化引领未来矿业管理
  • 流量主微信小程序工具类去水印
  • 代码随想录算法【Day5】
  • Leetcode 3403. Find the Lexicographically Largest String From the Box I
  • 【游戏设计原理】36 - 环境叙事
  • Python 中的 lambda 函数和嵌套函数
  • 语言模型评价指标
  • 工程师 - MSYS2介绍
  • 算法基础三:插入排序
  • 小米汽车加速出海,官网建设引领海外市场布局!
  • Python Polars快速入门指南:LazyFrames
  • 什么是网络安全(Cybersecurity)?
  • VBA批量插入图片到PPT,一页一图
  • Pandas-DataFrame入门
  • 爬虫 - 爬取王者荣耀所有皮肤图片
  • 【畅购商城】购物车模块之查看购物车
  • Spring Boot 学习笔记
  • 快速打造智能应用:从设计到上线的全流程指南
  • Java-将一个大列表均分成多个小列表,每个小列表包含10个元素
  • tcp_rcv_synsent_state_process函数
  • 关于无线AP信道调整的优化(锐捷)
  • C#编写的金鱼趣味小应用 - 开源研究系列文章
  • 计算机网络|数据流向剖析与分层模型详解