每日算法練習20200423

每天做一道算法題,循序漸進,按算法分類刷題。堅持下去,看能堅持多久,也看最終能有多大成效

二叉樹尋路

在一棵無限的二叉樹上,每個節點都有兩個子節點,樹中的節點 逐行 依次按 “之” 字形進行標記。

如下圖所示,在奇數行(即,第一行、第三行、第五行……)中,按從左到右的順序進行標記;

而偶數行(即,第二行、第四行、第六行……)中,按從右到左的順序進行標記。

給你樹上某一個節點的標號 label,請你返回從根節點到該標號為 label 節點的路徑,該路徑是由途經的節點標號所組成的。

每日算法練習20200423

示例 1:

輸入:label = 14

輸出:[1,3,4,14]

示例 2:

輸入:label = 26

輸出:[1,2,6,10,26]

提示:

1 <= label <= 10^6

解決方案

重要的是一個規律,除了最後一層,它的上一層節點的值,都是前一層對稱節點除以2,所以需要找到每一層的對稱節點除以2就是最終的結果。

實現代碼


每日算法練習20200423

參考鏈接

https://leetcode-cn.com/problems/path-in-zigzag-labelled-binary-tree

https://zhuanlan.zhihu.com/p/80662293


分享到:


相關文章: