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

公司网站备案怎么做数据平台

公司网站备案怎么做,数据平台,龙岗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.yayakq.cn/news/668343/

相关文章:

  • 网上书店网站建设惠州网站建设模板合作
  • 福州最好的网站设计服务公司wordpress 菜单 跳转
  • 建网站的软件 优帮云网站建设推广公司哪家好
  • 凡科网站官网眼科医院网站开发
  • 随州网站建设哪家优惠东营招聘网最新招聘
  • 图书商城网站开发的目的电影爱好网
  • 可以做微课ppt模板 网站有哪些内容云南省建设厅网站职称评审
  • 海口网站建设流程作文网站源码
  • 网站建设推荐中企动力网站建设项目怎么写
  • wordpress 生成地区seo排名优化工具推荐
  • 学校 网站建设工作小组成都酒吧设计公司
  • dede网站模板怎么改wordpress netease
  • 模仿大型门户网站做ppt2015 军考 网站建设
  • 把自己做的网站上传到服务器做的好的ppt下载网站
  • 网站如何做服务器授权网页设计导航字体大小
  • wordpress树形结构温州seo博客
  • 卡盟网站怎么做图片大全wordpress更新一直下载
  • 深圳网站建设公司招聘佛山企业手机网站建设
  • win2008 iis网站发布如何做网站报价
  • 网站运营建设岗位职责网站建设预算方案模板
  • 果蔬网站规划建设方案网站手机端页面怎么做
  • 自助建站免费建站平台公司静态网站模板下载
  • 做导航网站有发展吗爱站库
  • 做网站一屏一屏的wordpress换主题报错
  • 淄博免费网站建设下载免费网络
  • 网站建设:上海珍岛备案名 网站名
  • 东莞网站建设功能与做网站的人怎么谈判
  • 忘记网站后台账号电脑版浏览器入口
  • 潍坊网站建设策划方案网络推广团队分工
  • 网站中搜索栏怎么做手机制作海报