原题
https://leetcode.cn/problems/binary-tree-preorder-traversal/description/
思路
递归
复杂度
时间:O(n)
空间:O(n)
Python代码
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
ans = []
def preOrder(root):
if not root:
return
ans.append(root.val)
preOrder(root.left)
preOrder(root.right)
preOrder(root)
return ans
Go代码
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func preorderTraversal(root *TreeNode) []int {
var ans []int
var preOrder func(*TreeNode)
preOrder = func(root *TreeNode) {
if root == nil {
return
}
ans = append(ans, root.Val)
preOrder(root.Left)
preOrder(root.Right)
}
preOrder(root)
return ans
}
509

被折叠的 条评论
为什么被折叠?



