美文网首页
二叉树 Leetcode 589 前序遍历N叉树

二叉树 Leetcode 589 前序遍历N叉树

作者: 禾木清清 | 来源:发表于2019-07-14 09:00 被阅读0次

题目

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

例如,给定一个 3叉树 :

image

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

思路

  • 使用栈保存根节点
  • 弹栈
  • 然后逆序的保存跟节点,因为栈是先进后出
  • 保存当前节点的值

代码

"""
# 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
        
        stack = [root]
        while stack:
            
            node = stack.pop()
            res.append(node.val)
            stack.extend(node.children[::-1])
            
        return res

相关文章

网友评论

      本文标题:二叉树 Leetcode 589 前序遍历N叉树

      本文链接:https://www.haomeiwen.com/subject/wxfbkctx.html