1. 程式人生 > >leetcode python 589 N叉樹的前序遍歷

leetcode python 589 N叉樹的前序遍歷

題目:

給定一個N叉樹,返回其節點值的前序遍歷。 

例如,給定一個 3叉樹 :

返回其前序遍歷: [1,3,5,6,2,4]

思路:

首先得明白,這個N叉樹是什麼樣的資料結構定義的。val是節點的值,children是一個列表,這個列表儲存了其所有節點。

前序遍歷,即首先把根節點的值放到list中,然後再遍歷其子節點們的值,同時對於每一個子節點也做同樣的操作。

"""
# 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]
        """
        res=[]
        if not root:
            return res
        res.append(root.val)
        for child in root.children:
            res.extend(self.preorder(child))
        return res