算法刷题笔记05:Tree

2022-08-30 15:19:16 浏览数 (1)

144.二叉树的前序遍历

递归解法

代码语言:javascript复制
class Solution(object):
    def preorderTraversal(self, root):
        """
        :type root: TreeNode
        :rtype: List[int]
        """
        return [root.val]   self.preorderTraversal(root.left)   self.preorderTraversal(root.right) if root else []

迭代解法

TODO

94.二叉树的中序遍历

递归解法

代码语言:javascript复制
class Solution(object):
    def preorderTraversal(self, root):
        """
        :type root: TreeNode
        :rtype: List[int]
        """
        return self.preorderTraversal(root.left)   [root.val]   self.preorderTraversal(root.right) if root else []

迭代解法

TODO

589.N 叉树的前序遍历

题目描述

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

例如,给定一个 3叉树 :

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

递归解法

代码语言:javascript复制
"""
# Definition for a Node.
class Node(object):
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children
"""

class Solution(object):
    def preorder(self, root):
        """
        :type root: Node
        :rtype: List[int]
        """
        if root == None:return []
        res = [root.val]
        for node in root.children:
            res.extend(self.preorder(node))
        return res

迭代解法

TODO

590.N 叉树的后序遍历

递归解法

代码语言:javascript复制
class Solution(object):
    def postorder(self, root):
        """
        :type root: Node
        :rtype: List[int]
        """
        if root == None:return []
        res = []
        for node in root.children:
            res.extend(self.postorder(node))
        res.append(root.val)
        return res

迭代解法

TODO

0 人点赞