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

合肥建设网站首页seo分析是什么意思

合肥建设网站首页,seo分析是什么意思,济宁做网站多少钱,怎么做农产品垂直网站文章目录 题目思考实现1. 迭代方式实现链表翻转2. 递归方式实现链表翻转 Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,今天继续链表:反转链表 题目 LCR 024. 反转链表 思考 翻转链表是一个常见的算法问题&a…

文章目录

  • 题目
  • 思考
  • 实现
    • 1. 迭代方式实现链表翻转
    • 2. 递归方式实现链表翻转

Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,今天继续链表:反转链表

题目

LCR 024. 反转链表
在这里插入图片描述

思考

翻转链表是一个常见的算法问题,通常用于练习基本的数据结构操作

实现

在 Java 中可以通过迭代和递归两种方式来实现链表的翻转

1. 迭代方式实现链表翻转

  • 使用三个指针prevcurrnextTemp来逐步翻转链表。
    • prev初始化为null,表示新链表的末尾。
    • curr从头节点开始,逐步遍历整个链表。
    • 在遍历过程中,将当前节点的next指向前一个节点,并移动prevcurr到下一个节点。
class ListNode {int val;ListNode next;ListNode(int x) { val = x; }
}public class ReverseLinkedList {public static ListNode reverseList(ListNode head) {ListNode prev = null;ListNode curr = head;while (curr != null) {ListNode nextTemp = curr.next; // 保存下一个节点curr.next = prev; // 当前节点的next指向前一个节点prev = curr; // 前一个节点移动到当前节点curr = nextTemp; // 当前节点移动到下一个节点}return prev; // 返回新的头节点}public static void main(String[] args) {// 构建测试链表:1 -> 2 -> 3 -> 4 -> 5ListNode head = new ListNode(1);head.next = new ListNode(2);head.next.next = new ListNode(3);head.next.next.next = new ListNode(4);head.next.next.next.next = new ListNode(5);// 翻转链表ListNode reversedHead = reverseList(head);// 打印翻转后的链表ListNode current = reversedHead;while (current != null) {System.out.print(current.val + " ");current = current.next;}}
}

2. 递归方式实现链表翻转

  • 递归地处理链表的剩余部分,直到到达最后一个节点。
  • 在回溯过程中,翻转当前节点和其前一个节点的连接。
  • 最终返回新的头节点。
class ListNode {int val;ListNode next;ListNode(int x) { val = x; }
}public class ReverseLinkedList {public static ListNode reverseList(ListNode head) {// 基本情况:如果链表为空或只有一个节点,直接返回头节点if (head == null || head.next == null) {return head;}// 递归翻转剩余的链表ListNode p = reverseList(head.next);// 当前节点的下一个节点指向当前节点head.next.next = head;head.next = null;return p; // 返回新的头节点}public static void main(String[] args) {// 构建测试链表:1 -> 2 -> 3 -> 4 -> 5ListNode head = new ListNode(1);head.next = new ListNode(2);head.next.next = new ListNode(3);head.next.next.next = new ListNode(4);head.next.next.next.next = new ListNode(5);// 翻转链表ListNode reversedHead = reverseList(head);// 打印翻转后的链表ListNode current = reversedHead;while (current != null) {System.out.print(current.val + " ");current = current.next;}}
}

这两种方法在不同的场景下都有其优点和适用性。迭代方法通常更容易理解和实现,而递归方法则更具递归思想的优美性。

http://www.r43.cn/news/755.html

相关文章:

  • 河南网站推广怎么做做引流推广的平台
  • 黄平网站制作苏州网站优化排名推广
  • 信云科技的vps怎么做网站广告公司职位
  • php网站建设步骤seo内链优化
  • 南通城乡住房建设厅网站首页成都关键词seo推广电话
  • 网站公安系统备案seo推广优化培训
  • 建立网站功能网络营销案例分析论文
  • 动易政府网站seo优化效果怎么样
  • 没有网站怎么做外贸网站模板之家免费下载
  • 电子商务c2c网站功能学网络运营在哪里学比较好
  • 做彩票网站犯法吗seo关键词排名技术
  • 珠海网站建设王道下拉強百度店铺怎么开通
  • 网页设计作业素材优化大师免费版下载
  • 宿州企业网站推广武汉百度推广入口
  • 做图网站有哪些东西如何做一个网站
  • 商城网站设计实训总结以服务营销出名的企业
  • ps做电商网站尺寸是多少霸屏推广
  • 网站建设分为哪些济宁百度推广开户
  • 网站地图sitemap 网站根目录是哪个文件夹新闻最新消息
  • 小地方网站建设公司好适合口碑营销的产品
  • dede wap网站模板下载杭州云优化信息技术有限公司
  • 装修在线设计网站上海网站建设关键词排名
  • 中国建行网银登录长沙靠谱的关键词优化
  • 国务院办公厅关于网站建设要求推广普通话手抄报句子
  • 支付宝 wordpress 插件优化网站有哪些方法
  • wordpress调用文章排序seo综合诊断工具
  • 网站建设验收标准佛山市人民政府门户网站
  • 深圳营销型网站建设信息流优化师面试常见问题
  • 南昌手机网站制作seo排名工具
  • 教育机构网站制作模板百度竞价排名规则