N-ary Tree Preorder Traversal- Easy

Input: root = [1,null,3,2,4,null,5,6]
Output: [1,3,5,6,2,4]
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: [1,2,3,6,7,11,14,4,8,12,5,9,13,10]
"""
# Definition for a Node.
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
class Solution:
def preorder(self, root: 'Node') -> List[int]:
stack = [root]
res = []

while stack:
node = stack.pop()

if node:
res.append(node.val)

# Instead of appending one child at a time,
# extend the stack -> its 30% more faster.ArithmeticError
# push the children from right to left
stack.extend(node.children[::-1])
# for x in node.children[::-1]:
# stack.append(x)

return res
class Solution:
def __init__(self):
self.res = []

def preorder(self, root: 'Node') -> List[int]:
if root:
self.res.append(root.val)
for child in root.children:
self.preorder(child)

return self.res

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store