题目

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

题解

思路不难,DFS。

指针操作比较坑,注意边界以及特殊情况,所以多定义了几个变量用来“接着”过程中的值。

/*
// 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) {dfs(head);return head;}public Node dfs(Node node) {Node pre = node;if (node == null) return null;while (node != null) {if (node.child == null) {node = node.next;} else {Node next = node.next;Node nextEnd = dfs(node.child); // 我们认为后面的已经用递归flatten完成nextEnd.next = next;if (next != null) next.prev = nextEnd;node.next = node.child;node.child.prev = node;node.child = null;node = next;}}while (pre.next != null) { // 返回(flatten后的)下一行最后一个元素pre = pre.next;}return pre;}
}

430. Flatten a Multilevel Doubly Linked List | 430. 扁平化多级双向链表(DFS)相关推荐

  1. LeetCode 430. Flatten a Multilevel Doubly Linked List

    原题链接在这里:https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/description/ 题目: You a ...

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

    430. 扁平化多级双向链表 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表.这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构 ...

  3. LeetCode Flatten a Multilevel Doubly Linked List(dfs)

    问题: 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表.这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示. ...

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

    1. 题目 您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表.这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示. 扁平化列表 ...

  5. wxpython 按钮 扁平化_tensorflow tensor Flatten 张量扁平化,多通道转单通道数据

    slim.flatten(inputs,outputs_collections=None,scope=None) (注:import tensorflow.contrib.slim as slim) ...

  6. 利用Gson对json进行flatten(扁平化)处理

    目录 一.Gson的简单介绍 二.通过构建json树实现两层json的解析 三.通过递归实现多层json的解析 一.Gson的简单介绍 Gson是Google发布的一个处理json的java库.通过使 ...

  7. LeetCode 426. Convert Binary Search Tree to Sorted Doubly Linked List--转换二叉树为双向链表--Java,C++,Python解法

    题目地址:Convert Binary Search Tree to Sorted Doubly Linked List - LeetCode Convert a BST to a sorted ci ...

  8. Leetcode:114. Flatten Binary Tree to Linked List

    题目 Given a binary tree, flatten it to a linked list in-place. For example, given the following tree: ...

  9. LeetCode: Flatten Binary Tree to Linked List

    LeetCode: Flatten Binary Tree to Linked List LeetCode: Flatten Binary Tree to Linked List Given a bi ...

最新文章

  1. 前端篇--------1.css学习笔记
  2. javaGUI猜生日游戏
  3. [Go] golang设置运行的cpu数
  4. 关于flex布局的深入学习
  5. IE9以及IE9以下,无法执行innerHTML这一操作的解决方法
  6. 面向对象设计原则之7-迪米特法则
  7. 人这辈子过完70,接下来就是一步一个坎
  8. JDBC使用总结:增删改查、调用存储过程、执行存储函数、存储过程与存储函数区别分析
  9. 溯雪-轻博客PHP开源系统
  10. xmind8完整版下载(超详解 图文预警)
  11. 为什么要学习数据库以及数据库的选择
  12. 汉诺塔递归算法(Python编程)
  13. word-插入数学公式(mathtype)
  14. 中国版Second Life前途难料
  15. 怎么制作云端服务器,自己搭建云端服务器
  16. 《给中国学生的第四封信:大学四年应是这样度过》
  17. Jenkins使用FTP上传文件报错问题处理
  18. css实现鼠标悬停效果
  19. VS2008向工具箱中添加控件解决 未能实例化 设计时授权
  20. laravel跨域问题

热门文章

  1. HDU - 5790 Prefix(主席树+字典树)
  2. CodeForces - 1288C Two Arrays(组合数学)
  3. PostgreSQL学习笔记10之性能提升技巧
  4. ARP欺骗:先认识再防御
  5. STL vector的erase操作问题
  6. 你已经用上 5G 网络了吗?
  7. Linux 进程(二) 进程地址空间
  8. 你对JVM三色标记的理解嘛?
  9. SQL 性能优化梳理 —— 基本概念、创建时优化、查询时优化
  10. KubeSphere 3.1.0 GA:混合多云走向边缘,让应用无处不在