430 扁平化多級雙向鍊錶

2021-10-16 10:12:23 字數 774 閱讀 6173

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

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

示例 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]

解釋:

輸入的多級列表如下圖所示:

扁平化後的鍊錶如下圖所示:思路:迭代法

遍歷鍊錶,當節點存在child時,記錄該節點的下一節點,並將child的子鍊錶插入到該位置。然後繼續遍歷鍊錶。

c++實現如下:

/*

// definition for a node.

class node ;

*/class solution

//3、將[child,tail]這一段插入到nxt的前面

tail->next=nxt;

if(nxt)

nxt->prev=tail;

}cur=cur->next;

}return head;

}};

LeetCode 430 扁平化多級雙向鍊錶

您將獲得乙個雙向鍊錶,除了下乙個和前乙個指標之外,它還有乙個子指標,可能指向單獨的雙向鍊錶。這些子列表可能有乙個或多個自己的子項,依此類推,生成多級資料結構,如下面的示例所示。扁平化列表,使所有結點出現在單級雙鏈表中。您將獲得列表第一級的頭部。示例 輸入 1 2 3 4 5 6 null 7 8 9...

leetcode 430 扁平化多級雙向鍊錶

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

扁平化多級雙向鍊錶

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