我想到n叉樹的層序遍歷是因為我想輸出看看自己寫的trietree對不對,然後發現自己不會寫層序遍歷。果然是過程產生需求啊。
n叉樹就不贅述了,直接上**。
class
solution
size--;if
(size==0)
}return res;
}}
這裡面用list儲存了每一層的資料。size的大小意味著這層葉節點是否全部遍歷過,如果size=0,那麼就說明該遍歷下一層了,同時把list清空,方便下一層重新存入資料。
n層遍歷和二叉樹n層遍歷類似,都是用佇列儲存資料。
二叉樹層序遍歷原理:
拿二叉樹舉例,
第一步,節點1入隊
queue:1
第二步,節點1的孩子入隊,同時1出隊
queue:2 3
第三步,2出隊,2的孩子4 5入隊
queue:3 4 5
第四步,3出隊,3的孩子6入隊
queue:4 5 6
第五步,4出隊,4沒有孩子能入隊
queue:5 6
第五步,5出隊,與第四步同理
queue:6
最後,6出隊,隊列為空
leetcode 429 N叉樹的層序遍歷
給定乙個 n 叉樹,返回其節點值的層序遍歷。即從左到右,逐層遍歷 例如,給定乙個3叉樹 返回其層序遍歷 1 3,2,4 5,6 說明 樹的深度不會超過1000。樹的節點總數不會超過5000。遞迴實現 definition for a node.class node public node int v...
leetcode 429 N叉樹的層序遍歷
題目 給定乙個 n 叉樹,返回其節點值的層序遍歷。即從左到右,逐層遍歷 n叉樹定義 class node public node int val,list children 首先對n叉樹進行dfs,獲得其最大深度,建立含有對應元素個數的list,再遍歷整棵樹,將值加入對應層次。class solut...
LeetCode 429 N 叉樹的層序遍歷
difficulty 中等 給定乙個 n 叉樹,返回其節點值的 層序遍歷 即從左到右,逐層遍歷 樹的序列化輸入是用層序遍歷,每組子節點都由 null 值分隔 參見示例 示例 1 輸入 root 1,null,3,2,4,null,5,6 輸出 1 3,2,4 5,6 示例 2 輸入 root 1,n...