#LAISIR20. 題目名稱:古樹的年輪

題目名稱:古樹的年輪

🧮 題目名稱:古樹的年輪

📝 題目描述:

考古學家在沙漠中發現了一棵早已枯死的古樹,這棵樹的年輪記錄呈現出一種奇特的二叉結構。研究人員將其轉譯為一棵二叉樹的先序遍歷記錄(使用 "null" 表示空節點),他們想知道這棵古樹曾經生長的最高高度是多少。

一棵樹的高度定義為「從根節點到最深的葉子節點之間的邊數」。

請你根據給定的完全先序遍歷結果,還原出這棵二叉樹,並輸出其高度。


📥 輸入格式:

輸入共兩行:

  • 第一行為一個整數 n,表示先序遍歷序列的長度(包含 "null" 的節點)。

  • 第二行為 n 個字串,以空格分隔,為這棵樹的完全先序遍歷序列。

    • 節點值為 -10^510^5 間的整數,空節點為字串 "null"

📤 輸出格式:

一行一個整數,表示該樹的高度(根節點到最深葉節點之間的邊數)。


📊 數據範圍:

  • $1 \leq n \leq 10^5$
  • 保證輸入是某一棵合法二叉樹的完全先序遍歷結果。

📘 輸入範例 1:

7
1 2 null null 3 4 null null null

📗 輸出範例 1:

2

說明: 對應樹為:

    1
   / \
  2   3
     /
    4

其最深路徑為 1 → 3 → 4,共 2 條邊,故樹高為 2。


📘 輸入範例 2:

3
1 null null

📗 輸出範例 2:

0