Given an n-ary tree, return the postorder traversal of its nodes’ values.
Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).
Recursive solution is trivial, could you do it iteratively?
Input: root = [1,null,3,2,4,null,5,6] Output: [5,6,3,2,4,1]
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14] Output: [2,6,14,11,7,3,12,8,4,13,9,10,5,1]
- The height of the n-ary tree is less than or equal to
- The total number of nodes is between
Recursively visit nodes using post order.
""" # Definition for a Node. class Node: def __init__(self, val=None, children=None): self.val = val self.children = children """ class Solution: def postorder(self, root: 'Node') -> List[int]: results =  self.helper(root, results) return results def helper(self, root, results): if not root: return for child in root.children: self.helper(child, results) results.append(root.val)
- Time Complexity: O(N)
- Space Complexity: O(N)