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

算法题目---递归

1.汉诺塔问题

面试题 08.06. 汉诺塔问题 - 力扣(LeetCode)

解法:递归

class Solution { public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) { bfs(A,B,C,A.size()); } private void bfs(List<Integer> a, List<Integer> b, List<Integer> c, int size) { if (size==1){ c.add(a.remove(a.size()-1)); //当只有一个盘子的时候,直接将盘子放到c上 return; } bfs(a,c,b,size-1); //将size-1个a上的盘子借助c,移动到b上 c.add(a.remove(a.size()-1)); //将a上的盘子直接放到c上 bfs(b,a,c,size-1); //将b上的盘子,借助a,移动到c上 } }

2.合并两个有序链表

21. 合并两个有序链表 - 力扣(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 mergeTwoLists(ListNode list1, ListNode list2) { if (list1==null){ return list2; } if (list2==null){ return list1; } if (list1.val<=list2.val){ list1.next=mergeTwoLists(list1.next,list2); return list1; }else{ list2.next=mergeTwoLists(list1,list2.next); return list2; } } }

3.反转链表

206. 反转链表 - 力扣(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 reverseList(ListNode head) { if (head==null || head.next==null){ return head; } ListNode newHead=reverseList(head.next); head.next.next=head; head.next=null; return newHead; } }

4.两两交换链表中的节点

24. 两两交换链表中的节点 - 力扣(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 temp=swapPairs(head.next.next); //先让后面的节点进行交换 ListNode newHead=head.next; //标记链表的第二个节点,即交换完之后,新的头节点 head.next=temp; //修改指向,将头节点的next指向temp newHead.next=head; //修改指向,将newHead的next指向head return newHead; } }

5.Pow(x,n)

50. Pow(x, n) - 力扣(LeetCode)

解法:递归

class Solution { public double myPow(double x, int n) { return n<0?1/pow(x,n):pow(x,n); } private double pow(double x, int n) { if (n==0){ return 1.0; } double temp = pow(x,n/2); return n%2==0? temp*temp : temp*temp*x; } }
http://www.jsqmd.com/news/1324580/

相关文章:

  • 容器化DOS游戏:OpenClaw与Docker避坑实践指南
  • iOS激活锁绕过技术原理与AppleRa1n工具链深度解析
  • React Native与鸿蒙适配的技术挑战与解决方案
  • XSS-Labs靶场实战:从基础到进阶的跨站脚本攻击与防御技巧
  • Unity渲染路径下Dither透明物体阴影问题深度解析与解决方案
  • Spring Security会话并发控制:实现互斥登录与单点踢出
  • Dev C++ 新手入门:20步图文安装与五大常见错误解决方案
  • 2026年能效充电桩价格与公司选择指南:成都地区服务商实用参考 - 优质品牌商家
  • STM32硬件设计全解析:从芯片选型到PCB抗干扰实战指南
  • 3D渲染大赛参赛指南:奇幻场景创作技巧解析
  • COMSOL相场法模拟裂纹扩展实战指南
  • Python 如何给 AI API 做健康检查:快速判断接口是否可用
  • 会博通API对接实战:工程企业文档分布式采集系统的技术实现与Python SDK详解
  • 2026 年现阶段科尔沁右翼中旗可靠的全自动化缩口机制造厂家格局重塑与选型新思路,省80%人工成本的工业神器,竟藏着你想不到的高效秘密?-金利德自动化设备 - 鉴选官
  • 大学生买什么数码产品比较好?2026年开学季好物分享,适合广大学生
  • 数据血缘技术:构建大数据治理的核心图谱
  • 2026年8月店铺专用吸顶音响/家用客厅环绕吸顶音响厂家推荐分析_福建八雷电声音响科技有限公司 - 行业平台推荐
  • DC53电渣重熔钢在刀具制造中的性能优势与应用解析
  • Laravel开发者如何利用AI工具提升开发效率
  • 抖音下载器:从单视频到批量处理的完整技术解决方案
  • 2026 年新发布:平江比较好的耐根穿刺疏水板制造企业哪家可靠,楼顶漏水、绿植烂根?这玩意儿居然能同时解决两大痛点! - 行业推荐官[官方】--
  • 计算机核心组件数据传输机制与性能优化实战
  • 2026 年 8 月新发布:柞水有实力的直缝螺旋钢管厂家联系方式,用了十年工程的老伙计,换了这玩意儿后,承压性能竟翻了两倍还多!-友元管道 - 企业信息推荐-2
  • Unity Spine动画DrawCall优化:从合批原理到源码级实战
  • Frida动态插桩实现UE4运行时内存结构分析与Dump实战
  • 2026年8月回流焊烟雾净化器/江苏激光专用烟雾净化器优质厂家推荐_宁净净化科技( 苏州) 有限公司 - 品牌宣传支持者
  • 模型预测控制(MPC)参数调整:从系统工程视角解析调参逻辑与工程实践
  • Spring Boot+WebSocket构建高并发IM系统实战
  • Vue.js+SpringBoot智能健身会员系统开发实践
  • Java实现智能集群仿真:Boids模型与并发优化实践