LeetCode 430 扁平化多級雙向鍊錶

2021-09-27 13:34:46 字數 744 閱讀 3099

您將獲得乙個雙向鍊錶,除了下乙個和前乙個指標之外,它還有乙個子指標,可能指向單獨的雙向鍊錶。這些子列表可能有乙個或多個自己的子項,依此類推,生成多級資料結構,如下面的示例所示。

扁平化列表,使所有結點出現在單級雙鏈表中。您將獲得列表第一級的頭部。

示例:

輸入:

1---2---3---4---5---6--null

|7---8---9---10--null

|11--12--null

輸出:1-2-3-7-8-11-12-9-10-4-5-6-null

我的思路:

如上面示例所示,我遇到乙個節點,比如說3號節點,發現它有孩子,然後我儲存現場(儲存3號節點的後乙個節點4,下次將從4節點開始繼續執行函式),遞迴,把它的孩子放入函式裡再遞迴呼叫,重複上述過程,當發現子節點沒有孩子之後,正常結束呼叫即可。

**:

class solution 

t2->next = t1;//尾結點接上前面儲存現場的節點

if (t1 != null)//儲存現場的節點可能為空,要注意

t1->prev = t2;

temp = t1;//準備繼續遍歷

}else//節點沒有孩子,正常往下走就行

}return head;//返回頭結點

}};

leetcode 430 扁平化多級雙向鍊錶

題目鏈結 多級雙向鍊錶中,除了指向下乙個節點和前乙個節點指標之外,它還有乙個子鍊錶指標,可能指向單獨的雙向鍊錶。這些子列表也可能會有乙個或多個自己的子項,依此類推,生成多級資料結構,如下面的示例所示。給你位於列表第一級的頭節點,請你扁平化列表,使所有結點出現在單級雙鏈表中。示例 1 輸入 head ...

430 扁平化多級雙向鍊錶

題目 多級雙向鍊錶中,除了指向下乙個節點和前乙個節點指標之外,它還有乙個子鍊錶指標,可能指向單獨的雙向鍊錶。這些子列表也可能會有乙個或多個自己的子項,依此類推,生成多級資料結構,如下面的示例所示。給你位於列表第一級的頭節點,請你扁平化列表,使所有結點出現在單級雙鏈表中。示例 1 輸入 head 1,...

陣列扁平化

原陣列 const arr 1,2,3,4 5,6,7,8 9 希望輸出 1,2,3,4,5,6,7,8,9 方法一 遞迴 function arrdelayering arr else return newarr let newarr arrdelayering arr 1,2,3,4,5,6,7...