iT邦幫忙

2026 iThome 鐵人賽

DAY 18
0
Software Development

快樂演算法系列 第 18

The second drone has been successfully built & 102 v2

  • 分享至 

  • xImage
  •  
  1. #102 和 #297 最大差別 like大樓

          #102 Level Order	    #297 Serialize / Deserialize
    

目的 列住戶名冊 保存整棟大樓藍圖,之後要重建
Tree 還在嗎 O Tree 本身就在眼前 X Serialize 後只剩 String
要記空位嗎 不用 一定要
為什麼 只要輸出存在的 node 必須知道 left/right 哪裡原本是空的
核心 BFS + Queue DFS + null marker

最小例子:

    1
     \
      2

#102 like 住戶名冊 只需要回答:
第 1 層:[1]
第 2 層:[2]
so [[1],[2]]完全不在乎 2 是左邊空、右邊有。

因為題目只問:每一層有哪些 node value?根本不需要日後照原位置把 Tree 蓋回來。

BFS只是:這一層有哪些住戶 → 記下來 → 再去看下一層有哪些住戶。

Queue 放 node
→ 記住這層幾個→ 把這層全部讀出來→ 左右 child 放進 Queue→ 下一層
它就是把 Tree 原本的結構,整理成「每層有哪些 node」的報表。

#297 就不同

如果只寫:1,2會不知道原本是:

    1
   /
  2

還是:

    1
     \
      2

所以一定要留空位:

左 child:
1,2,n,n,n

右 child:
1,n,2,n,n

#102 是住戶名冊:只記誰住這層;#297 是建築藍圖:連哪間房是空的都必須記。


上一篇
八字水平圓 & 347 v2 ->102
系列文
快樂演算法18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言