430. Flatten a Multilevel Doubly Linked List | 430. 扁平化多级双向链表(DFS)
题目
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)相关推荐
- LeetCode 430. Flatten a Multilevel Doubly Linked List
原题链接在这里:https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/description/ 题目: You a ...
- 430. 扁平化多级双向链表
430. 扁平化多级双向链表 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表.这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构 ...
- LeetCode Flatten a Multilevel Doubly Linked List(dfs)
问题: 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表.这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示. ...
- LeetCode 430. 扁平化多级双向链表(DFS)
1. 题目 您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表.这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示. 扁平化列表 ...
- wxpython 按钮 扁平化_tensorflow tensor Flatten 张量扁平化,多通道转单通道数据
slim.flatten(inputs,outputs_collections=None,scope=None) (注:import tensorflow.contrib.slim as slim) ...
- 利用Gson对json进行flatten(扁平化)处理
目录 一.Gson的简单介绍 二.通过构建json树实现两层json的解析 三.通过递归实现多层json的解析 一.Gson的简单介绍 Gson是Google发布的一个处理json的java库.通过使 ...
- 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 ...
- 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: ...
- 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.css学习笔记
- javaGUI猜生日游戏
- [Go] golang设置运行的cpu数
- 关于flex布局的深入学习
- IE9以及IE9以下,无法执行innerHTML这一操作的解决方法
- 面向对象设计原则之7-迪米特法则
- 人这辈子过完70,接下来就是一步一个坎
- JDBC使用总结:增删改查、调用存储过程、执行存储函数、存储过程与存储函数区别分析
- 溯雪-轻博客PHP开源系统
- xmind8完整版下载(超详解 图文预警)
- 为什么要学习数据库以及数据库的选择
- 汉诺塔递归算法(Python编程)
- word-插入数学公式(mathtype)
- 中国版Second Life前途难料
- 怎么制作云端服务器,自己搭建云端服务器
- 《给中国学生的第四封信:大学四年应是这样度过》
- Jenkins使用FTP上传文件报错问题处理
- css实现鼠标悬停效果
- VS2008向工具箱中添加控件解决 未能实例化 设计时授权
- laravel跨域问题