LEETCODE 144. 二叉树的前序遍历

LEETCODE 144. 二叉树的前序遍历

题目描述

给定一个二叉树,返回它的 前序 遍历。

示例:

输入: [1,null,2,3]
1
\
2
/
3

输出: [1,2,3]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?

题目地址
中文版
英文版

代码实现

递归版

class Solution(object):
	def preorderTraversal(self, root):
		"""
		:type root: TreeNode
		:rtype: List[int]
		"""
		res = []
		def recursion(root):
			if not root:
				return
			res.append(root.val)
			recursion(root.left)
			recursion(root.right)
		recursion(root)
		return res
                                                    

迭代版本

class Solution(object):
	def preorderTraversal(self, root):
		"""
		:type root: TreeNode
		:rtype: List[int]
		"""
		res =[]
		stack = []
		while root or stack:
			if root:
				stack.append(root)
				res.append(root.val)
				root = root.left
				
			else:
				node = stack.pop()
				root = node.right
		return res
                                                              
0 次阅读

发表评论

电子邮件地址不会被公开。