給定乙個n叉樹,返回其節點值的後序遍歷。
例如,給定乙個 3叉樹 :
返回其後序遍歷: [5,6,3,2,4,1].
說明:遞迴法很簡單,你可以使用迭代法完成此題嗎?
遞迴法:
分析:用乙個函式遍歷並存資料到陣列。
/*
// definition for a node.
class node
node(int _val, vector_children)
};*/
class solution
void
postord
(node* root, vector<
int>
&res)
res.
push_back
(root->val);}
};
迭代法:分析:迭代法用棧來存節點,依次取棧頂節點的資料並出棧。要注意的是,此時存孩子節點的順序應該從左到右,即先遍歷左孩子再遍歷右孩子,最後父節點。最後使用reverse函式反轉結果陣列即可得到所求。
/*
// definition for a node.
class node
node(int _val, vector_children)
};*/
class solution
res.
push_back
(node->val);}
reverse
(res.
begin()
,res.
end())
;return res;}}
;
leetcode 590 N叉樹的後序遍歷
給定乙個 n 叉樹,返回其節點值的後序遍歷。例如,給定乙個3叉樹 返回其後序遍歷 5,6,3,2,4,1 思路 類似於二叉樹的後序遍歷,利用遞迴實現。definition for a node.class node public node int val,list children class so...
leetcode 590 N叉樹的後序遍歷
給定乙個 n 叉樹,返回其節點值的後序遍歷。例如,給定乙個 3叉樹 返回其後序遍歷 5,6,3,2,4,1 說明 遞迴法很簡單,你可以使用迭代法完成此題嗎?definition for a node.class node public node int val public node int val...
LeetCode 590 N叉樹的後序遍歷
給定乙個 n 叉樹,返回其節點值的後序遍歷。比如給定乙個節點u,其子節點v1,v2,v3,那麼他的後序遍歷順序為 v1的子節點,v1,v2的子節點,v2,v3的子節點,v3,u 這樣的遍歷順序為 u,v3,v3的子節點,v2,v2的子節點,v1,v1的子節點 遍歷順序相反一些,就是其後序遍歷順序 c...