题目
难度:★★☆☆☆
类型:树
给定一个 N 叉树,返回其节点值的后序遍历。
例如,给定一个 3叉树 :
返回其后序遍历: [5,6,3,2,4,1].
说明: 递归法很简单,你可以使用迭代法完成此题吗?
解答
方案1:递归
class Solution:
def postorder(self, root):
result = []
if not root:
return result
# 递归的方式
result.append(root.val)
for n in root.children[::-1]:
po = self.postorder(n)
for p in po[::-1]:
result.insert(0, p)
方案2:迭代
class Solution:
def postorder(self, root):
result = []
if not root:
return result
# 迭代的方式
temp = []
temp.append(root)
while temp:
node = temp.pop()
result.insert(0, node.val)
if len(node.children) > 0:
for n in node.children:
temp.append(n)
return result
如有疑问或建议,欢迎评论区留言~