430. 扁平化多级双向链表

leetcode: 430. 扁平化多级双向链表 题目 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/flatten-a-multilevel-doubly-linked-list 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。 示例 1: 输入:head = [1,2,3,4,5 阅读详情

你会得到一个双链表,其中包含的节点有一个下一个指针、一个前一个指针和一个额外的 子指针 。这个子指针可能指向一个单独的双向链表,也包含这些特殊的节点。这些子列表可以有一个或多个自己的子列表,以此类推,以生成如下面的示例所示的 多层数据结构 。

给定链表的头节点 head ,将链表 扁平化 ,以便所有节点都出现在单层双链表中。让 curr 是一个带有子列表的节点。子列表中的节点应该出现在扁平化列表中的 curr 之后 和 curr.next 之前 。

返回 扁平列表的 head 。列表中的节点必须将其 所有 子指针设置为 null 。

 

示例 1:

输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12]
输出:[1,2,3,7,8,11,12,9,10,4,5,6]
解释:输入的多级列表如上图所示。
扁平化后的链表如下图:

示例 2:

输入:head = [1,2,null,3]
输出:[1,3,2]
解释:输入的多级列表如上图所示。
扁平化后的链表如下图:

示例 3:

输入:head = []
输出:[]
说明:输入中可能存在空列表。

 

提示:

  • 节点数目不超过 1000
  • 1 <= Node.val <= 105
/*
// 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) {
        if(head==null) return head;
        Stack<Node> stack = new Stack<Node>();
        Node node = head;
        while(node!=null)
        {
            if(node.child!=null)
            {
                if(node.next!=null)
                {
                    stack.push(node.next);
                    node.child.prev = node;
                    node.next = node.child;
                    node.child = null;
                    node = node.next;
                }
                else
                {
                    node.next = node.child;
                    node.child.prev = node;
                    node.child = null;
                    node = node.next;
                }
            }
            else if(node.next!=null) node = node.next;
            else if(node.next==null && stack.isEmpty()==false)
            {
                Node n = stack.pop();
                node.next = n;
                n.prev = node;
                node = n;
            }
            else return head;
        }
        return head;
    }
}

 

 

Android 系统低内存lowmemorykiller关于阈值修改 minfreeAbsKbytes优化 在系统rom定制化开发中,在对于运行内存ram 1G和2G的设备中,对于内存使用高峰期时,minfreeAbsKbytes优化很关键 调整合理的minfree,让内存合理的使用很关键,接下来分析相关功能的实现 阅读详情

相关推荐

新手避坑指南:HT7036计量芯片SPI读取电压的完整流程(从复位到校准)

本文详细介绍了HT7036计量芯片的SPI读取电压完整流程,从硬件准备到校准设置,重点解析了复位引脚处理、SPI通信配置、芯片初始化及数据处理等关键步骤。针对常见问题如晶振焊接、SPI时序错误等提供实用解决方案,帮助开发者高效完成电压测量与校准。

weixin_30070339的博客 326

430、扁平化多级双向链表

你会得到一个双链表,其中包含的节点有一个下一个指针、一个前一个指针和一个额外的 子指针 。这个子指针可能指向一个单独的双向链表,也包含这些特殊的节点。这些子列表可以有一个或多个自己的子列表,以此类推,以生成如下面的示例所示的 多层数据结构 。 给定链表的头节点 head ,将链表 扁平化 ,以便所有节点都出现在单层双链表中。让 curr 是一个带有子列表的节点。子列表中的节点应该出现在扁平化列表中的 curr 之后 和 curr.next 之前 。 返回 扁平列表的 head 。列表中的节点必须将其 所有

morhuishou的博客 555

硬件电路(22)-TTL和232切换电路

工作中会遇到TTL和232电平的通信的状态,为了实现一种便捷的切换方式,参考了一些文章,提供一种电路方便大家使用。

剑藏锋的博客 1860

扁平化多级双向链表

扁平化多级双向链表 题目: 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。 示例 1: 输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12] 输出:[1,2,3,7,8,11,12,9,10,4,5,6] 解释: 输入

KobeSacre的博客 259

Vivado2022.2下载安装

链接:https://pan.baidu.com/s/1lyfE2d-VmaWC-_aR8ratCQ提取码:mt09。

weixin_61081689的博客 2万+

AI一键生成带货短视频:电商直播的未来

随着电子商务行业的快速发展,直播带货已成为一种极为有效的营销手段。然而,传统的人工直播方式存在诸多局限性,如人力成本高、主播培训周期长等问题。为了解决这些挑战,一种基于AI技术的一键生成带货视频解决方案应运而生——这就是“Anchor Crafter”。这项创新技术不仅能够自动创建高质量的带货视频,而且还能实现人物与商品之间的自然交互,极大地提升了用户体验。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 2199

leetcode 探索 链表 扁平化多级双向链表

题目 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。 输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12] 输出:[1,2,3,7,8,11,12,9,10,4,5,6] 解释: 输入的多级列表如下图所示: 扁平

KylinMountain的笔记 320

【案例讲解】LVGL关于旋转的配置

在实现项目中,因为横竖屏的关系,需要对其做90度的旋转。配置旋转时发现一些局部刷新控件,旋转后效果不对。异常图标正常图标。

Bigan(安)的博客 4282

leetcode 430. 扁平化多级双向链表

leetcode 430. 扁平化多级双向链表 文章目录leetcode 430. 扁平化多级双向链表一、题目1.题目描述2.基础框架3.解题思路4.知识点 一、题目 原题链接:430. 扁平化多级双向链表 相同题目:剑指 Offer II 028. 展平多级双向链表 1.题目描述 你会得到一个双链表,其中包含的节点有一个下一个指针、一个前一个指针和一个额外的 子指针 。这个子指针可能指向一个单独的双向链表,也包含这些特殊的节点。这些子列表可以有一个或多个自己的子列表,以此类推,以生成如下面的示例所示的

进击的code儿 841

【同等学力】2025-数学✨

本文主要涵盖了谓词逻辑、集合论、图论和排列组合等多个数学领域的题目。在谓词逻辑部分,要求用全称量词和存在量词表达“没有两个人的指纹完全相同”。集合论部分涉及集合运算的证明,如证明(A-B)-C=(A-C)-(B-C)。图论部分包括计算给定10个点的联通图的边与面数。排列组合部分则要求计算从8个人中选6个并分为三组的不同方法。此外,还涉及偏序、长链、反链、二项式定理等相关内容,参考了多个优快云博客中的解题思路。

super_mochi1 675

conda upgrade出现Solving environment:failed CondaValueError Malformed version string invalid chars解决方案

本文主要介绍了conda install出现Solving environment:failed、CondaValueError: Malformed version string invalid character(s),希望能对使用conda的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 步骤一 2.2 步骤二

weixin_43178406的博客 8万+

LeetCode题练习与总结:扁平化多级双向链表--430

本文详细介绍了如何通过递归方法将多级双向链表扁平化,涵盖了链表遍历、递归调用、指针更新等关键知识点,并分析了算法的时间复杂度和空间复杂度,为解决此类链表问题提供了清晰的思路。

一直学习永不止步 1568

开关电源-LLC基本原理

本文详细介绍了LLC谐振变换器的兴起原因、基本工作原理、变换器特点及拓扑结构。重点讨论了半桥、全桥LLC及其软开关技术,包括零电压开关(ZVS)和零电流开关(ZCS)。通过理解简单的谐振电路(RL、RC、LC)来阐述LLC如何改变电压增益,以及如何通过调节频率实现输出电压的稳定性。

让你爱上电路设计 2万+

LeetCode 430. 扁平化多级双向链表

LeetCode 430. 扁平化多级双向链表 题目描述: 您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 扁平化列表,使所有结点出现在单级双链表中。您将获得列表第一级的头部。 示例: 输入: 1---2---3---4---5---6--NULL ...

Gerald的博客 851

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Leetcode 430.扁平化多级双向链表 c语言

Leetcode 430.扁平化多级双向链表 c语言 题目描述: 您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 扁平化列表,使所有结点出现在单级双链表中。您将获得列表第一级的头部。 示例: 输入: 1—2---3—4---5—6–NULL | 7—8---9—10–N...

ninotxdy的博客 731

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LeetCode-430. 扁平化多级双向链表-题解

LeetCode-430. 扁平化多级双向链表-题解

2301_76874968的博客 1396

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

LeetCode 430:扁平化多级双向链表

目录LeetCode题目描述解题 LeetCode 题目描述 解题      /* // Definition for a Node. class Node { public: int val; Node* prev; Node* next; Node* child; }; */ class Solution { public: Node *end_node = nullptr; Node* flatten(Node* head) { if

s_Shune 742

C++实现LeetCode 430 扁平化多级双向链表

C++实现LeetCode 430 扁平化多级双向链表 题目描述: 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。 示例: 输入:head = [1,2,3,4,5,6,null,...

caiprivate的博客 695

leetcode430:扁平化多级双向链表

你会得到一个双链表,其中包含的节点有一个下一个指针、一个前一个指针和一个额外的。这个子指针可能指向一个单独的双向链表,也包含这些特殊的节点。这些子列表可以有一个或多个自己的子列表,以此类推,以生成如下面的示例所示的。给定链表的头节点head,将链表,以便所有节点都出现在单层双链表中。让curr是一个带有子列表的节点。子列表中的节点应该出现在中的curr和curr.next。返回扁平列表的head。列表中的节点必须将其子指针设置为null。自用,感觉dfs版比较绕,得多复习几次,很容易出错。

shenghaide_jiahu的博客 1149

Java实现 LeetCode 430 扁平化多级双向链表

430. 扁平化多级双向链表 您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 扁平化列表,使所有结点出现在单级双链表中。您将获得列表第一级的头部。 示例: 输入: 1---2---3---4---5---6--NULL | 7---...

南 墙 1万+

LeetCode 430. 扁平化多级双向链表(Java)

430. 扁平化多级双向链表 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。 示例 1: 输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,1...

nuts_and_bolts的博客 693

LeetCode 430 - 扁平化多级双向链表

这道题围绕一个稍微“奇形怪状”的链表结构展开: 它不仅有 next 和 prev,还额外多了一个 child 指针,指向另一个双向链表,而子链表还可能继续嵌套子链表——最终形成一个多层结构。 我们的任务,就是把这个多层结构彻底拍扁,变成一条真正的单层双向链表,child 指针全部置为 nil,并保证节点顺序满足题意: 子链表应该插入在当前节点之后、原 next 之前。 乍一看像是树结构和双向链表的混合,也确实有点“结构跨界”的味道,但解法其实非常清晰: 深度优先搜索 DFS,将子链表按顺序拼接进去。

记录从移动端、鸿蒙到物联网与AI的完整实战与思考。专注于分享可复用的工程方案与产品思维,尤其深入鸿蒙生态与全栈开发。以十年工程与管理沉淀,为你提供清晰的技术纵深路径。坚信技术的价值在于“贯通”与“落地”。 1286

LeetCode 430 | 扁平化多级双向链表

LeetCode 430 | 扁平化多级双向链表 题目 题解 第一次没有理解对题目,看错了要求,用了队列,扁平化后的顺序不合题目要求,不过幸苦敲的,还是记录一下队列的实现代码: /* // Definition for a Node. class Node { public: int val; Node* prev; Node* next; Node* child; }; */ class Solution { public: Node* flatt

weixin_45730130的博客 942

Leetcode 430、扁平化多级双向链表

Problem Source : https://leetcode-cn.com/problems/flatten-a-multilevel-doubly-linked-list/ Solution Source : https://github.com/hujingbo98/algorithm/blob/master/source/leetcode/0430_FlattenAMultilevelDoublyLinkedList.cpp 430、扁平化多级双向链表 多级双向链表中,除了指向下一个节点和前一.

博弈的博客 491

Day21: [LeetCode中等] 430. 扁平化多级双向链表

Day21: [LeetCode中等] 430. 扁平化多级双向链表 题源: 来自leetcode题库: https://leetcode-cn.com/problems/flatten-a-multilevel-doubly-linked-list/ 思路: 我用的是递归的思想,这道题很适合递归。 代码: dirty code凑合看吧 /* // Definition for a Node. ...

qq2215459786的博客 506
上一篇: 394. 字符串解码
下一篇: 92. 反转链表 II
梅子猪猪
博客等级 码龄9年 120粉丝 469原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值