給定乙個 n 叉樹,返回其節點值的前序遍歷。
例如,給定乙個 3叉樹 :
返回其前序遍歷: [1,3,5,6,2,4]。
說明: 遞迴法很簡單,你可以使用迭代法完成此題嗎?
思路分析:和二叉樹的前序遍歷思想一致,先訪問根節點,在訪問子節點。
請先翻閱 leetcode 二叉樹的前序遍歷(遞迴、遞推)
/*
// definition for a node.
class node
node(int _val, vector_children)
};*/
class
solution
//先序遍歷:先根節點,再子節點
void
mypreorder
(node* root)
result.
push_back
(root-
>val)
;//先根節點
方法二:遞推法。
/*
// definition for a node.
class node
node(int _val, vector_children)
};*/
class
solution
//先序遍歷:先根節點,再子節點
result.
push_back
(root-
>val)
;//先根節點
//注意棧是先進後出,所以需要倒置放入所有子節點
LeetCode N叉樹的前序遍歷
所以這裡在最初的時候即使是二叉樹也不能像之前寫的那樣直接輸出,如果在函式首部定義乙個vector每次遞迴都會重新建立,裡邊的資料儲存不下來,我也想過定義乙個全域性變數,但是這樣也不妥,這樣的話返回值返回什麼。class node node int val,vector children class ...
LeetCode N叉樹的深度
給定乙個 n 叉樹,找到其最大深度。最大深度是指從根節點到最遠葉子節點的最長路徑上的節點總數。例如,給定乙個 3叉樹 說明 樹的深度不會超過 1000。樹的節點總不會超過 5000。思路分析 樹最大深度 最大的子樹深度 1.definition for a node.class node node ...
LeetCode N叉樹遍歷 11 29Cold
1.589n叉樹的前序遍歷 32674.0 簡單法一 佇列,迭代 注意 queue.length,不能以 queue判空陣列 var preorder function root return res 用到佇列和concat,因為題給的是children,如果二叉樹就不能用 法二 foreach遞迴...