[LeetCode&Python] Problem 589. N-ary Tree Preorder Traversal

2021-05-18 12:28

阅读:774

标签:turn   note   ima   set   分享   images   end   solution   tps   

Given an n-ary tree, return the preorder traversal of its nodes‘ values.

 

For example, given a 3-ary tree:

技术分享图片

 

Return its preorder traversal as: [1,3,5,6,2,4].

 

Note: Recursive solution is trivial, could you do it iteratively?

 

Recursion Method:

"""
# Definition for a Node.
class Node(object):
    def __init__(self, val, children):
        self.val = val
        self.children = children
"""
class Solution(object):
    def preorder(self, root):
        """
        :type root: Node
        :rtype: List[int]
        """
        l=[]
        
        def subpreorderfun(r):
            if r:
                l.append(r.val)
                for c in r.children:
                    subpreorderfun(c)
        
        subpreorderfun(root)
        
        return l

  

Iteration Method:

"""
# Definition for a Node.
class Node(object):
    def __init__(self, val, children):
        self.val = val
        self.children = children
"""
class Solution(object):
    def preorder(self, root):
        """
        :type root: Node
        :rtype: List[int]
        """
        l=[]
        q=[root]
                
        if root:
            p=[]
            while q:
                a=q.pop(0)
                l.append(a.val)
                
                for c in a.children:
                    p.append(c)
                    
                n=len(p)
                for i in range(n):
                    q=[p.pop()]+q
                
        return l

  

[LeetCode&Python] Problem 589. N-ary Tree Preorder Traversal

标签:turn   note   ima   set   分享   images   end   solution   tps   

原文地址:https://www.cnblogs.com/chiyeung/p/9744423.html


评论


亲,登录后才可以留言!