- leetcode--tree
- 144. Binary Tree Preorder Traver
- 144. Binary Tree Preorder Traver
- 字节跳动 144. Binary Tree Preorder T
- 144. Binary Tree Preorder Traver
- 144. Binary Tree Preorder Traver
- 144. Binary Tree Preorder Traver
- 144. Binary Tree Preorder Traver
- 144. Binary Tree Preorder Traver
- 144. Binary Tree Preorder Traver
话不多说,直接上栈的解法。
直接打印根节点的值,然后将根节点入栈,然后将根节点的左节点循环入栈。
然后弹出栈顶元素,再去遍历其右节点。
# 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: TreeNode) -> List[int]:
result = []
if not root:
return result
p = root
stack = []
while len(stack) > 0 or p:
if p:
result.append(p.val)
stack.append(p)
p = p.left
else:
p = stack.pop()
p = p.right
return result
为了练手,还是写一下递归的写法
# 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: TreeNode) -> List[int]:
result = []
if not root:
return result
result.append(root.val)
result += self.preorderTraversal(root.left)
result += self.preorderTraversal(root.right)
return result
网友评论