首页 > 试题广场 >

二叉树的前序遍历

[编程题]二叉树的前序遍历
  • 热度指数:103130 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

数据范围:二叉树的节点数量满足 ,二叉树节点的值满足 ,树的各节点的值各不相同

示例 1:


示例1

输入

{1,#,2,3}

输出

[1,2,3]

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
class Solution:
    def preorderTraversal(self , root: TreeNode) -> List[int]:
        # write code here
        list=[]
        print(root)
        def tree(tre):
            if tre:
                list.append(tre.val)
                tree(tre.left)
                tree(tre.right)
        tree(root)
        return list

发表于 2024-01-08 16:02:39 回复(0)
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution:
    def preorderTraversal(self, root: TreeNode) -> List[int]:
        result = []
        self.preorderTraversalRecursive(root, result)
        return result

    def preorderTraversalRecursive(self, node, result):
        if not node:
            return

        # 访问当前节点的值
        result.append(node.val)

        # 递归遍历左子树
        self.preorderTraversalRecursive(node.left, result)

        # 递归遍历右子树
        self.preorderTraversalRecursive(node.right, result)

发表于 2023-11-14 18:53:49 回复(0)
极简代码
class Solution:
    def preorderTraversal(self , root: TreeNode) -> List[int]:
        # write code here
        if not root:
            return []
        return [root.val] + self.preorderTraversal(root.left) + self.preorderTraversal(root.right)

发表于 2022-11-05 00:07:23 回复(0)
class Solution:
    def preorderTraversal(self , root: TreeNode) -> List[int]:
        # write code here
        a=[]
        def tree(tre):
            if tre:
                a.append(tre.val)
                return  tree(tre.left) or tree(tre.right)
        tree(root)
        return a
发表于 2022-09-22 16:54:43 回复(0)
class Solution:
    l = []
    def preorderTraversal(self , root: TreeNode) -> List[int]:
        # write code here
        if root == None:
            return 
        self.l.append(root.val)
        self.preorderTraversal(root.left)
        self.preorderTraversal(root.right)
        return self.l

发表于 2022-06-25 18:51:12 回复(0)
class Solution:
    @staticmethod
    def order(root,lis):
        if not root:
            return None
        lis.append(root.val)
        Solution.order(root.left,lis)
        Solution.order(root.right,lis)
        return lis
    def preorderTraversal(self , root: TreeNode) -> List[int]:
        # write code here
        lis = []
        lis = Solution.order(root,lis)
        return lis
发表于 2022-05-17 16:54:46 回复(0)
class Solution:
    def preorderTraversal(self , root: TreeNode) -> List[int]:
        # write code here
        res = []
        def preorder(root):
            if not root:
                return None
            res.append(root.val)
            preorder(root.left)
            preorder(root.right)
        preorder(root)
        return res

发表于 2022-04-19 16:22:46 回复(1)