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

C++ | Leetcode C++题解之第430题扁平化多级双向链表

题目:

题解:

class Solution {
public:Node* flatten(Node* head) {function<Node*(Node*)> dfs = [&](Node* node) {Node* cur = node;// 记录链表的最后一个节点Node* last = nullptr;while (cur) {Node* next = cur->next;//  如果有子节点,那么首先处理子节点if (cur->child) {Node* child_last = dfs(cur->child);next = cur->next;//  将 node 与 child 相连cur->next = cur->child;cur->child->prev = cur;//  如果 next 不为空,就将 last 与 next 相连if (next) {child_last->next = next;next->prev = child_last;}// 将 child 置为空cur->child = nullptr;last = child_last;}else {last = cur;}cur = next;}return last;};dfs(head);return head;}
};

http://www.mrgr.cn/news/33933.html

相关文章:

  • git-repo系列教程(6) 在自己服务器上搭建git-repo仓库
  • 2024 离线ASR和TTS推荐与示例
  • 【二等奖论文】2024年华为杯研究生数学建模E题成品论文获取入口
  • Java 每日一刊(第15期):内部类
  • java8新特新(二)
  • AI学习指南深度学习篇-Adadelta的数学原理
  • Project Online 高级版部署方案
  • 7款国内AI搜索引擎大全网站
  • Kotlin Android 环境搭建
  • uniapp map设置高度为100%后,会拉伸父容器的高度
  • MateBook 16s 2023在Deepin下开启性能模式,调节风扇转速到最大,全网首发!
  • 返利机器人在电商返利系统中的负载均衡实现
  • 【C语言零基础入门篇 - 17】:排序算法
  • PHP isset() 和 empty() 区别
  • 【C++】继承(上)
  • 定了,东湖高新区下半年中高级职称申报时间
  • java日志框架之Log4j
  • Golang | Leetcode Golang题解之第430题扁平化多级双向链表
  • C++标准库双向链表 list 中的insert函数实现。
  • C++离线查询