題目連結:
題目意譯:
給定一二元樹,回傳其節點的從下到上(Bottom-Up)之階層探訪(Level-Order Traversal),即從左至右、一階一階地從葉節點到根節點。
範例測資:
例如:
給定二元樹 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
回傳其由下至上階層尋訪為:
[
[15,7],
[9,20],
[3]
]
解題思維:
不過因為要由下至上,所以也可以先衝到最底部,然後將動態陣列(因應這題的要求,對於 C++ 的話請用動態陣列包動態陣列,其中動態陣列可以使用 vector 這個容器)開到與深度同等大小。接著就根據每個節點的深度(至於深度值可以照著昨天的
題目之作法去賦予給每一個節點)推進陣列中對應位置的存放的陣列之結尾。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。