算法提高之LeetCode刷题数据结构和算法分析

N叉树的前序遍历

2020-02-26  本文已影响0人  _阿南_

题目:

给定一个 N 叉树,返回其节点值的*前序遍历*。

例如,给定一个 `3叉树` :
题目
返回其前序遍历: `[1,3,5,6,2,4]`。

题目的理解:

一开始感觉N叉树的children怎么设计好呢,然后想到直接设计成一个数组,那么就可以解决了。

python实现

from typing import List

# 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]:
        nums = list()
        
        self.traverse(nums, root)
        
        return nums
        


    def traverse(self, nums: List[int], node: Node):
        if node is None:
            return 
        
        nums.append(node.val)
        
        for child_node in node.children:
            self.traverse(nums, child_node)

提交

成功

还是使用了递归方法,这个方法比较简单。

// END 越在家待,越不想工作。

上一篇下一篇

猜你喜欢

热点阅读