430. 扁平化多級雙向鏈表

430. 扁平化多級雙向鏈表

多級雙向鏈表中,除了指向下一個節點和前一個節點指針之外,它還有一個子鏈表指針,可能指向單獨的雙向鏈表。這些子列表也可能會有一個或多個自己的子項,依此類推,生成多級數據結構,如下面的示例所示。

給你位于列表第一級的頭節點,請你扁平化列表,使所有結點出現在單級雙鏈表中。

示例 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]
解釋:輸入的多級列表如下圖所示:1---2---NULL|3---NULL
示例 3:輸入:head = []
輸出:[]如何表示測試用例中的多級鏈表?以 示例 1 為例:1---2---3---4---5---6--NULL|7---8---9---10--NULL|11--12--NULL
序列化其中的每一級之后:[1,2,3,4,5,6,null]
[7,8,9,10,null]
[11,12,null]
為了將每一級都序列化到一起,我們需要每一級中添加值為 null 的元素,以表示沒有節點連接到上一級的上級節點。[1,2,3,4,5,6,null]
[null,null,7,8,9,10,null]
[null,11,12,null]
合并所有序列化結果,并去除末尾的 null 。[1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12]

提示:

  • 節點數目不超過 1000
  • 1 <= Node.val <= 10^5

解題思路

類似于樹的遍歷,當遇到子節點的時候,優先遞歸進入子鏈表,并且遞歸返回的是子鏈表的末尾節點,那么我們就可以將子鏈表連接到第一級鏈表內部

代碼

/*
// 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) {dfsFlatten(head);return head;}public Node dfsFlatten(Node head) {Node pre=null;while(head!=null){if(head.child!=null){Node next=head.next;Node tail=dfsFlatten(head.child);head.next=head.child;head.child.prev=head;head.child=null;if(next!=null){tail.next=next;next.prev=tail;}pre=tail;head=next;}else {pre=head;head=head.next;}}return pre;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390043.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390043.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390043.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PHPstudy搭建本地環境的網頁加載速度慢的解決方案

PHP5.3以上&#xff0c;如果數據庫鏈接地址是localhost&#xff0c;會自動檢測最終的地址是IPV4還是IPV6&#xff0c;所以會比較慢。解決辦法&#xff1a;修改數據庫的鏈接地址&#xff0c;將localhost改為127.0.0.1即可。 原文鏈接&#xff1a;https://chasjd.com/posts/fb433…

標記偏見_分析師的偏見

標記偏見“Beware of the HiPPO in the room” — The risks and dangers of top-down, intuition-based decision making are well known in the business world. Experimentation and data-based decision making become widely acknowledged as the right way to steer a bu…

scott登錄查詢常用語句

一、簡單查詢 1.簡單查詢select * from emp;--查詢表emp中的所有數據select empno as id,ename as name from emp;--查詢表emp中的empno顯示為id&#xff0c;ename顯示為name 2.去除重復select distinct job from emp;--將表emp中的job去重select distinct job,deptno from emp…

CSS結構的基礎認知

css的屬性值與html的屬性值用法不相上下&#xff0c;但是css主要分為內聯樣式表和外聯樣式表。 內聯樣式表用法&#xff1a;在html文件中的《head》頭文件中添加<style></style>標簽&#xff0c;在標簽內添加所需的屬性值&#xff0c;例如&#xff1a;<!DOCTYPE…

BZOJ1453: [Wc]Dface雙面棋盤

Time Limit: 10 Sec Memory Limit: 64 MB Submit: 784 Solved: 422 [Submit][Status][Discuss] Description 佳佳有一個 nnn 行 nnn 列的黑白棋盤&#xff0c;每個格子都有兩面&#xff0c;一面白色&#xff0c;一面黑色。佳佳把棋盤平放在桌子上&#xff0c;因此每個格子恰好一…

用戶體驗數據分析 書單_如何使用數據改善用戶體驗設計

用戶體驗數據分析 書單In the current age of technology, if an entrepreneur comes up with a grand idea, chances are they’ll need a pretty sweet website to go along with it. And if they want their idea to really sell, they will also need a website that reall…

推薦11個實用的JavaScript庫

2019獨角獸企業重金招聘Python工程師標準>>> JavaScript 仍然是 2018 年最受歡迎和使用最為廣泛的編程語言&#xff0c;因此 JavaScript 生態系統也會繼續發展壯大。 然而&#xff0c;JavaScript 的標準庫仍然繼續保持“短小精悍”的身材。為了填補標準庫功能方面的…

371. 兩整數之和

371. 兩整數之和 給你兩個整數 a 和 b &#xff0c;不使用 運算符 和 - ???????&#xff0c;計算并返回兩整數之和。 示例 1&#xff1a; 輸入&#xff1a;a 1, b 2 輸出&#xff1a;3 示例 2&#xff1a; 輸入&#xff1a;a 2, b 3 輸出&#xff1a;5 提示&a…

【福利】微信小程序精選Demo合集

小編最近在開發小程序&#xff0c;也讀到了不少優秀的小程序源碼&#xff0c;項目中有些需求可以直接從源碼里粘貼復制過來&#xff0c;雖然這樣做不利于自己獨立編寫代碼&#xff0c;但比較是給公司做項目啊&#xff0c;秉著效率第一的原則&#xff0c;簡直沒有什么比ctrlc,ct…

639. 解碼方法 II

639. 解碼方法 II 一條包含字母 A-Z 的消息通過以下的方式進行了編碼&#xff1a; A -> 1 B -> 2 ... Z -> 26要 解碼 一條已編碼的消息&#xff0c;所有的數字都必須分組&#xff0c;然后按原來的編碼方案反向映射回字母&#xff08;可能存在多種方式&#xff09;。…

[cpyhon源代碼]dict對象原理學習

Cpython 2.7 分支中&#xff0c;dict 對象的源代碼 lookdict 搜索算法 1 static PyDictEntry *2 lookdict(PyDictObject *mp, PyObject *key, register long hash)3 {4 register size_t i;5 register size_t perturb;6 register PyDictEntry *freeslot;7 regis…

熊貓數據集_熊貓邁向數據科學的第一步

熊貓數據集I started learning Data Science like everyone else by creating my first model using some machine learning technique. My first line of code was :通過使用某種機器學習技術創建我的第一個模型&#xff0c;我開始像其他所有人一樣學習數據科學。 我的第一行代…

SQLServer鎖的機制

SQLServer鎖的機制&#xff1a;共享鎖(S)排它鎖(X)更新鎖(U)意向共享 (IS)意向排它 (IX) 意向排它共享 (SIX)架構修改(Sch-M) 架構穩定性(Sch-S)大容量更新&#xff08;BU&#xff09;轉載于:https://www.cnblogs.com/yldIndex/p/8603902.html

你是否具有價值

一個有價值的人往往受歡迎的程度才會高。白天上午花了兩個多小時的時間幫前同事遠程解決了服務器部署時由于防火墻機制問題引起的系統功能失敗的問題。解決完這個問題之后&#xff0c;同事的心情很愉悅&#xff0c;其實我自己的心情也很愉悅&#xff0c;看來人都有幫助別人和被…

為什么選擇做班級管理系統_為什么即使在平衡的班級下準確性也很麻煩

為什么選擇做班級管理系統Accuracy is a go-to metric because it’s highly interpretable and low-cost to evaluate. For this reason, accuracy — perhaps the most simple of machine learning metrics — is (rightfully) commonplace. However, it’s also true that m…

使用Chrome開發者工具調試Android端內網頁(微信,QQ,UC,App內嵌頁等)

使用Chrome開發者工具調試Android端內網頁(微信&#xff0c;QQ&#xff0c;UC&#xff0c;App內嵌頁等) 傳送門轉載于:https://www.cnblogs.com/momozjm/p/9389912.html

517. 超級洗衣機

517. 超級洗衣機 假設有 n 臺超級洗衣機放在同一排上。開始的時候&#xff0c;每臺洗衣機內可能有一定量的衣服&#xff0c;也可能是空的。 在每一步操作中&#xff0c;你可以選擇任意 m (1 < m < n) 臺洗衣機&#xff0c;與此同時將每臺洗衣機的一件衣服送到相鄰的一臺…

netflix的準實驗面臨的主要挑戰

重點 (Top highlight)Kamer Toker-Yildiz, Colin McFarland, Julia GlickKAMER Toker-耶爾德茲 &#xff0c; 科林麥克法蘭 &#xff0c; Julia格里克 At Netflix, when we can’t run A/B experiments we run quasi experiments! We run quasi experiments with various obje…

網站漏洞檢測針對區塊鏈網站安全分析

2019獨角獸企業重金招聘Python工程師標準>>> 目前移動互聯網中&#xff0c;區塊鏈的網站越來越多&#xff0c;在區塊鏈安全上&#xff0c;很多都存在著網站漏洞&#xff0c;區塊鏈的充值&#xff0c;會員賬號的存儲性XSS竊取漏洞&#xff0c;賬號安全&#xff0c;等…

223. 矩形面積

223. 矩形面積 給你 二維 平面上兩個 由直線構成的 矩形&#xff0c;請你計算并返回兩個矩形覆蓋的總面積。 每個矩形由其 左下 頂點和 右上 頂點坐標表示&#xff1a; 第一個矩形由其左下頂點 (ax1, ay1) 和右上頂點 (ax2, ay2) 定義。 第二個矩形由其左下頂點 (bx1, by1) …