#感悟
关于二叉树的题目,不会考察节点间的连线过程,一般依靠输入的嵌套过程,完成树的构建
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
from typing import Optional, List
class Solution:
def proOrder(self, root, ret):
if root:
ret.append(root.val)
self.proOrder(root.left, ret)
self.proOrder(root.right, ret)
def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
ret = []
self.proOrder(root, ret)
return ret
# 创建一个简单的二叉树
# 1
# / \
# 2 3
# / \
# 4 5
# 创建节点
node_4 = TreeNode(4)
node_5 = TreeNode(5)
node_2 = TreeNode(2, node_4, node_5)
node_3 = TreeNode(3)
root = TreeNode(1, node_2, node_3)
# 创建 Solution 类的实例
solution = Solution()
# 调用 preorderTraversal 方法进行前序遍历
result = solution.preorderTraversal(root)
print("二叉树的前序遍历结果是:", result)