题意: 给定一个二叉树,返回它的 前序 遍历。
示例:
输入: [1,null,2,3]
1
\
2
/
3
输出: [1,2,3]
方法一: 利用递归的思想
class Solution:
def __init__(self):
self.ret = []
def preorderTraversal(self, root: TreeNode) -> List[int]:
if root != None:
self.ret.append(root.val)
self.preorderTraversal(root.left)
self.preorderTraversal(root.right)
return self.ret
方法二: 利用栈的思想
class Solution:
def preorderTraversal(self, root: TreeNode) -> List[int]:
if not root: return []
stack = [root]
res = []
while stack:
node = stack.pop()
res.append(node.val)
if node.right: stack.append(node.right)
if node.left: stack. append(node.left)
return res