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

0430. 扁平化多级双向链表

文章目录

      • 题目链接
      • 题目描述
      • 推荐写法(返回尾节点,整体 O(n))
      • 复杂度分析

题目链接

https://leetcode.cn/problems/flatten-a-multilevel-doubly-linked-list/

题目描述

将多级双向链表扁平化:把每个节点的 child 子链表插入到该节点与其 next 之间,最终得到单层双向链表,所有 child 置为 null。

推荐写法(返回尾节点,整体 O(n))

/*
// Definition for a Node.
class Node {public int val;public Node prev;public Node next;public Node child;
}
*/
class Solution {public Node flatten(Node head) {flattenTail(head);return head;}// 扁平化以 head 为首的链表,返回该段扁平化后的尾节点private Node flattenTail(Node head) {Node cur = head;Node last = head; // 记录当前已扁平段的尾while (cur != null) {Node next = cur.next;if (cur.child != null) {// 先把 child 段扁平化,得到其尾节点 childTailNode childHead = cur.child;Node childTail = flattenTail(childHead);// 将 child 段插入 cur 与 next 之间cur.next = childHead;childHead.prev = cur;cur.child = null;// 接回 nextif (next != null) {childTail.next = next;next.prev = childTail;}// 更新 last,并从 childTail 继续last = childTail;cur = next;} else {last = cur;cur = next;}}return last;}
}

复杂度分析

  • 时间复杂度:O(n),每个节点仅被访问和重连常数次。
  • 空间复杂度:O(d),d 为最大嵌套深度(递归栈);可改迭代+显式栈降为 O(h) 显式空间。
http://www.dtcms.com/a/545372.html

相关文章:

  • 网站关键词多少合适icp备案服务码
  • TypeScript声明合并详解二
  • 做网站组织架构my77728域名查询
  • 深度学习------图像分割项目
  • 【深度学习2】线性回归的从零开始实现
  • LeetCode第2题:两数相加及其变种(某大厂面试原题)
  • Java 字符编码全解析:从乱码根源到 Unicode 实战指南
  • SpringBoot 高效工具类大全
  • 自己做网站用软件wordpress电商优秀
  • 百度网站建设中的自由容器网站用哪个数据库
  • 入侵检测系统——HIDS和NIDS的区别
  • C语言多进程创建和回收
  • 仓颉编程语言:控制流语句详解(if/else)
  • 专利撰写与申请核心要点简报
  • AI搜索引擎num=100参数移除影响深度分析:内容标识与准确性变化
  • NJU-SME 人工智能(三) -- 正则化 + 分类 + SVM
  • 【数据库】表的设计
  • 深圳制作网站建设推广第一网站ppt模板
  • 点网站建设广州专业网站建设哪家公司好
  • 仓颉语言构造函数深度实践指南
  • DTAS 3D-尺寸公差分析定制化服务与解决方案的专家-棣拓科技
  • 永康营销型网站建设wordpress自定义作者连接
  • linux NFS(网络文件系统)挂载完整指南
  • 数字营销软件完整指南|CRM、CDP、自动化平台 2025
  • 企业级建模平台Enterprise Architect如何自动化生成报告
  • Chat2DB 学习笔记
  • 外国做爰网站小程序问答库
  • 关于网站建设方案的案例石家庄建站凡科
  • LeetCode 410 - 分割数组的最大值
  • Kotlin数据结构性能全解析