fox_blog
二叉树知识点-代码随想录
二叉树知识点-代码随想录
Created
2022-07-26
|
Updated
2024-02-10
|
我要就业
|
Post Views:
一提到二叉树遍历的迭代法,
可能立刻想起使用
栈
来模拟深度遍历,
使用
队列
来模拟广度遍历。
Author:
HITlittlefox
Link:
http://example.com/2022/07/26/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9F%A5%E8%AF%86%E7%82%B9-%E4%BB%A3%E7%A0%81%E9%9A%8F%E6%83%B3%E5%BD%95/
Copyright Notice:
All articles on this blog are licensed under
CC BY-NC-SA 4.0
unless otherwise stated.
Previous
二叉树知识点-labuladong
遇到一道二叉树的题目时的通用思考过程是: 是否可以通过遍历一遍二叉树得到答案? 如果可以,用一个 traverse 函数配合外部变量来实现。 是否可以定义一个递归函数,通过子问题(子树)的答案推导出原问题的答案? 如果可以,写出这个递归函数的定义,并充分利用这个函数的返回值。 无论使用哪一种思维模式, 你都要明白二叉树的每一个节点需要做什么,需要在什么时候(前中后序)做。 一旦你发现题目和子树有关,那大概率要给函数设置合理的定义和返回值,在后序位置写代码了。遇到子树问题,首先想到的是给函数设置返回值,然后在后序位置做文章。「遍历」和「分解问题」两种思维方式二叉树的构造问题一般都是使用「分解问题」的思路: 构造整棵树 = 根节点 + 构造左子树 + 构造右子树。
Next
回溯三部曲-代码随想录
回溯三部曲 回溯函数模板返回值以及参数 习惯是函数起名字为backtracking 函数返回值一般为void 一般是先写逻辑,然后需要什么参数,就填什么参数。 回溯函数伪代码如下:void backtracking(参数) 回溯函数终止条件 回溯函数终止条件伪代码如下:if (终止条件) { 存放结果; return; } 回溯搜索的遍历过程 回溯函数遍历过程伪代码如下:for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 } for 循环可以理解是横向遍历: for 循环就是遍历集合区间,可以理解一个节点有多少个孩子,这个 for 循环就执行多少次。 backtracking(递归)就是纵向遍历 backtracking 这里自己调用自己,实现递归。 回溯算法模板框架void backtracking(参数) { if (终止条件)...
HITlittlefox
Articles
112
Tags
12
Categories
10
Follow Me
Announcement
This is my Blog
Contents
1.
一提到二叉树遍历的迭代法,
Recent Posts
解决一次adapter嵌套不更新内容
2025-03-28
解决一次时间复杂度
2025-03-28
onCreateViewHolder
2025-02-17
解bug请拉取最新分支
2025-01-20
Skeleton Layout
2025-01-17