遍歷children_[LeetCode] 590. N叉樹的後序遍歷
阿新 • • 發佈:2021-01-25
技術標籤:遍歷children
題目連結: https://leetcode-cn.com/problems/n-ary-tree-postorder-traversal
難度:簡單
通過率:69.5%
題目描述:
給定一個 N 叉樹,返回其節點值的 後序遍歷 。
例如,給定一個 3叉樹
:
返回其後序遍歷: [5,6,3,2,4,1]
.
說明: 遞迴法很簡單,你可以使用迭代法完成此題嗎?
示例:
思路:
遞迴和迭代
程式碼:
遞迴1:
class Solution: def postorder(self, root: 'Node') -> List[int]: if not root: return [] stack = [root] res = [] while stack: p = stack.pop() stack.extend(p.children) res.append(p.val) return res[::-1]
class Solution:
def postorder(self, root: 'Node') -> List[int]:
if not root: return []
res = []
for node in root.children:
res.extend(self.postorder(node))
res.append(root.val)
return res
迭代
class Solution: def postorder(self, root: 'Node') -> List[int]: if not root: return [] stack = [root] res = [] while stack: p = stack.pop() stack.extend(p.children) res.append(p.val) return res[::-1]