二叉树
二叉树遍历
前中后序遍历
前序递归
// 递归遍历写法,以前序遍历为例
public IList<int?> PreorderTraversalRecursion(TreeNode root)
{
List<int?> result = new List<int?>();
Traverse(root, result);
return result;
}
void Traverse(TreeNode? p, ICollection<int?> result)
{
if (p?.val == null)
{
return;
}
// 其他遍历调整这里的语句顺序即可
result.Add(p.val);
Traverse(p.left, result);
Traverse(p.right, result);
}前序非递归
中序非递归
后序非递归
DFS 和 BFS
DFS 深度优先搜索-从上到下
DFS 深度优先搜索-从下向上(分治法)
BFS 广度优先搜索
常见题目
二叉树分治
典型示例
常见题目
二叉树的的最大深度
平衡二叉树
二叉树中的最大路径和
二叉树的最近公共祖先
BFS 应用
常见题目
二叉树的层序遍历
二叉树的层序遍历II
二叉树的锯齿形层序遍历
二叉搜索树应用
常见题目
二叉搜索树中的插入操作
删除二叉搜索树中节点
总结
练习
最后更新于