590 N叉樹的後序遍歷

2021-08-28 08:13:43 字數 947 閱讀 7860

給定乙個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...