一、590. N叉树的后序遍历
1.1、题目描述
"""
# Definition for a Node.
class Node:
def __init__(self, val, children):
self.val = val
self.children = children
"""
class Solution:
def __init__(self) ->None:
self.ret = []
def postorder(self, root: 'Node') -> List[int]:
if not root:
return []
self.postorderT(root)
return self.ret
def postorderT(self, root: 'Node') -> List[int]:
if root.children:
for child in root.children:
self.postorder(child)
if root:
self.ret.append(root.val)
1.2.2、迭代
class Solution:
def __init__(self) ->None:
self.ret = []
def postorder(self, root: 'Node') -> List[int]:
if not root:
return []
que = [root]
while que:
node = que.pop()
if node:
self.ret.append(node.val)
for child in node.children:
que.append(child)
# 逆序
return self.ret[::-1]