2021-06-26力扣算法题总结

@二叉树总结

二叉树阶段性总结

从今天开始记录每天的学习生活了,之前不怎么写博客,对Markdown语法虽然学了一些但是依旧不是很熟悉,力扣的题目都是通过pycharm来记录的,以后通过这种形式,记录一下,记录各种学习,做算法题,做项目的日常

二叉树的遍历

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、基于深度优先遍历方式的三种遍历

二叉树的定义:

代码如下(示例):

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

1.前序遍历(根->左->右)

递归方式好写,但是迭代方式可以参考以下思路,这是目前我认为比较好理解和记住的方式。

思路:

  • 利用栈后进先出的特性
  • 入栈顺序是左右根
  • 出栈顺序就是根左右

代码如下(示例):

# 递归方式
	def preorderTraversal1(self, root: TreeNode) -> List[int]:
		# 基于根左右的方式就行递归添加节点值
		def dfs(root: TreeNode): 
			if not root:
				return []
			res.append(root.val) 
			dfs(root.left)
			dfs(root.right)
		res = []
		dfs(root)
		return res
# 迭代方式
    def preorderTraversal2(self
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值