思考良久,沒有想到什麼好方法,這時候只能按部就班分情況討論
鍊錶有子節點
當前節點是否為空?
當前節點為空
temp.next = temp.child;
//temp表示當前節點
temp.child = null;
temp.next.prev = temp;
temp = temp.next;
當前節點不為空
先把當前節點的下乙個節點入棧,再執行上邊的操作
stack.
add(temp.next)
;temp.next = temp.child;
//temp表示當前節點
temp.child = null;
temp.next.prev = temp;
temp = temp.next;
鍊錶沒有子節點
當前節點是否是末尾節點並且棧是不是空的
如果當前節點的下乙個節點為空並且棧非空,就把當前節點指向棧中彈出來的節點
否則繼續往後走
public node flatten
(node head)
temp = temp.next;
}else
}return head;
}
扁平化多級雙向鍊錶
題目描述 多級雙向鍊錶中,除了指向下乙個節點和前乙個節點指標之外,它還有乙個子鍊錶指標,可能指向單獨的雙向鍊錶。這些子列表也可能會有乙個或多個自己的子項,依此類推,生成多級資料結構,如下面的示例所示。給你位於列表第一級的頭節點,請你扁平化列表,使所有結點出現在單級雙鏈表中。示例 1 輸入 head ...
扁平化多級雙向鍊錶
您將獲得乙個雙向鍊錶,除了下乙個和前乙個指標之外,它還有乙個子指標,可能指向單獨的雙向鍊錶。這些子列表可能有乙個或多個自己的子項,依此類推,生成多級資料結構,如下面的示例所示。扁平化列表,使所有結點出現在單級雙鏈表中。您將獲得列表第一級的頭部。示例 輸入 1 2 3 4 5 6 null 7 8 9...
430 扁平化多級雙向鍊錶
題目 多級雙向鍊錶中,除了指向下乙個節點和前乙個節點指標之外,它還有乙個子鍊錶指標,可能指向單獨的雙向鍊錶。這些子列表也可能會有乙個或多個自己的子項,依此類推,生成多級資料結構,如下面的示例所示。給你位於列表第一級的頭節點,請你扁平化列表,使所有結點出現在單級雙鏈表中。示例 1 輸入 head 1,...