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

怎么在南京人社网站做失业登记微信广告平台推广

怎么在南京人社网站做失业登记,微信广告平台推广,网络科技加我qq是干嘛,长江证券官方网站下载文章目录 1. 反转链表1.1 问题描述1.2 方法思路迭代法递归法 1.3 代码实现迭代法(Java)递归法(Java) 1.4 复杂度分析1.5 关键点解释 2. 回文链表2.1 问题描述2.2 方法思路2.3 代码实现(Java)2.4 复杂度分析…

文章目录

    • 1. 反转链表
      • 1.1 问题描述
      • 1.2 方法思路
        • 迭代法
        • 递归法
      • 1.3 代码实现
        • 迭代法(Java)
        • 递归法(Java)
      • 1.4 复杂度分析
      • 1.5 关键点解释
    • 2. 回文链表
      • 2.1 问题描述
      • 2.2 方法思路
      • 2.3 代码实现(Java)
      • 2.4 复杂度分析
      • 2.5 优化思路
    • 3. 反转链表II(区间反转)
      • 3.1 问题描述
      • 3.2 方法思路
      • 3.3 代码实现(Java)
      • 3.4 复杂度分析
      • 3.5 边界处理
    • 4. 总结

1. 反转链表

1.1 问题描述

给定单链表的头节点 head,要求反转链表,并返回新的头节点。
示例
输入:1 → 2 → 3 → 4 → 5
输出:5 → 4 → 3 → 2 → 1


1.2 方法思路

迭代法
  1. 双指针法:使用 prevcurr 两个指针,逐步反转指针方向。
  2. 终止条件:当 curr 遍历到链表末尾时停止。
递归法
  1. 递归到末尾:从链表尾部开始反转。
  2. 回溯反转:每次回溯时,让后驱节点指向前驱节点。

1.3 代码实现

迭代法(Java)
public ListNode reverseList(ListNode head) {ListNode prev = null;ListNode curr = head;while (curr != null) {ListNode next = curr.next;  // 保存下一个节点curr.next = prev;           // 反转指针prev = curr;                // prev前移curr = next;                // curr前移}return prev;  // 新头节点
}
递归法(Java)
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;
}

1.4 复杂度分析

方法时间复杂度空间复杂度
迭代法O(n)O(1)
递归法O(n)O(n)

1.5 关键点解释

  • 迭代法核心:通过 prevcurr 的逐步移动,实现指针方向的反转。
  • 递归法核心:利用递归栈回溯的特性,从链表尾部开始反转。

2. 回文链表

2.1 问题描述

判断单链表是否为回文结构(正序与逆序相同)。
示例
输入:1 → 2 → 3 → 2 → 1 → 输出:true
输入:1 → 2 → 3 → 4 → 输出:false


2.2 方法思路

  1. 快慢指针找中点:快指针走两步,慢指针走一步。
  2. 反转后半链表:从中点开始反转后半部分链表。
  3. 双指针比较:比较前半部分和反转后的后半部分是否一致。

2.3 代码实现(Java)

public boolean isPalindrome(ListNode head) {if (head == null || head.next == null) return true;// 1. 快慢指针找中点ListNode slow = head, fast = head;while (fast != null && fast.next != null) {slow = slow.next;fast = fast.next.next;}// 处理奇数长度链表if (fast != null) slow = slow.next;// 2. 反转后半链表ListNode reversed = reverseList(slow);// 3. 比较两部分ListNode p1 = head, p2 = reversed;while (p2 != null) {if (p1.val != p2.val) return false;p1 = p1.next;p2 = p2.next;}return true;
}// 反转链表辅助函数(迭代法)
private ListNode reverseList(ListNode head) {ListNode prev = null, curr = head;while (curr != null) {ListNode next = curr.next;curr.next = prev;prev = curr;curr = next;}return prev;
}

2.4 复杂度分析

  • 时间复杂度:O(n)
    找中点(O(n/2))+ 反转后半(O(n/2))+ 比较(O(n/2))= O(n)
  • 空间复杂度:O(1)

2.5 优化思路

  • 避免破坏原链表:比较完成后,可以再次反转后半链表恢复原结构(需增加一次反转操作)。

3. 反转链表II(区间反转)

3.1 问题描述

反转链表中从位置 mn 的子链表(区间从1开始计数)。
示例
输入:1 → 2 → 3 → 4 → 5m=2n=4 → 输出:1 → 4 → 3 → 2 → 5


3.2 方法思路

  1. 哑节点(Dummy Node):简化头节点可能被反转的边界处理。
  2. 定位前驱节点:找到第 m-1 个节点 preM
  3. 反转子链表:反转 mn 的节点,重新连接链表。

3.3 代码实现(Java)

public ListNode reverseBetween(ListNode head, int m, int n) {if (head == null || m == n) return head;ListNode dummy = new ListNode(0);  // 哑节点处理边界dummy.next = head;ListNode preM = dummy;// 定位到第 m-1 个节点for (int i = 0; i < m - 1; i++) {preM = preM.next;}// 反转 m 到 n 的节点ListNode start = preM.next;  // 子链表头ListNode curr = start;ListNode prev = null;for (int i = 0; i < n - m + 1; i++) {ListNode next = curr.next;curr.next = prev;prev = curr;curr = next;}// 重新连接链表preM.next = prev;    // 前驱连接新头start.next = curr;   // 原子链表尾连接剩余节点return dummy.next;
}

3.4 复杂度分析

  • 时间复杂度:O(n)
    定位前驱节点(O(m))+ 反转子链表(O(n-m+1))= O(n)
  • 空间复杂度:O(1)

3.5 边界处理

  • m=1:哑节点保证 preM 存在,无需特殊处理。
  • m=n:直接返回原链表。

4. 总结

  1. 反转链表:迭代法(O(1) 空间)和递归法(O(n) 空间)各有适用场景。
  2. 回文链表:结合快慢指针和反转链表,实现 O(1) 空间复杂度。
  3. 区间反转:通过哑节点和精准定位,高效处理子链表反转。

核心技巧

  • 双指针法(快慢指针、前后指针)
  • 哑节点简化边界条件
  • 递归与回溯的灵活应用

通过练习这些经典问题,可以深入掌握链表操作的核心逻辑!

http://www.dtcms.com/wzjs/47903.html

相关文章:

  • 域名空间网站推广搜狐三季度营收多少
  • python用于网站开发seo优化运营专员
  • 能看外国网站的浏览器深圳优化网站
  • 石家庄制作网站的公司小程序开发平台
  • 旅游电子商务网站建设规划书什么软件比百度搜索好
  • 电商网站增加客户云建站
  • 教育机构电商网站建设加盟企业网站的网络营销功能
  • 教育网站制作方案关键词seo排名优化如何
  • 温州做网站多少钱hs网站推广
  • wordpress优先级js百度搜索引擎优化指南最新版
  • 石家庄划定6个高风险区seo怎么优化方法
  • 附近装修公司地址电话seo网站介绍
  • 柳州制作网站数据分析师培训机构推荐
  • 成都高端网站建设哪家好太原关键词优化软件
  • 好点得手机网站托管搜索引擎营销例子
  • 网页上传 网站陕西新闻今日头条
  • 百姓网站制作保健品的营销及推广方案
  • 如何做旅游休闲网站品牌运营策划
  • 网站开发公司云鲸互创怎么联系成人电脑培训班附近有吗
  • 微信网站用什么制作的周口搜索引擎优化
  • 5种有效增加网站流量淘宝怎么推广自己的产品
  • 网站建设需要多少山西免费网站关键词优化排名
  • 技术先进的网站建设公司电商培训
  • 做卖车的网站有哪些网络优化行业的发展前景
  • wordpress 本地转移优化问题
  • 疾控网站建设宗旨和目的如何去做网络推广
  • 企业 网站备案株洲seo
  • macbook做网站绑定域名最新百度新闻
  • 广州做网站多贵州整站优化seo平台
  • 制作网站需要注意什么58网络推广