小红花·文摘
  • 首页
  • 广场
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI
二叉树的垂直遍历。314. 二叉树的垂直顺序遍历。

给定一个二叉树,使用广度优先搜索(BFS)按列垂直遍历,记录每个节点的列号,并通过哈希表存储列号与节点值的映射,最后转换为列表。时间复杂度为O(N),空间复杂度为O(N)。

二叉树的垂直遍历。314. 二叉树的垂直顺序遍历。

DEV Community
DEV Community · 2025-05-01T09:28:59Z
Leetcode - 114. 将二叉树扁平化为链表

本文讨论了如何使用递归方法将二叉树原地扁平化为链表。通过先扁平化左子树,再扁平化右子树,连接左右子树,最终形成链表结构。代码示例展示了尾节点的查找和空值检查,时间复杂度为O(n),空间复杂度为O(h)。

Leetcode - 114. 将二叉树扁平化为链表

DEV Community
DEV Community · 2025-04-27T18:54:59Z
Leetcode - 106. 从中序和后序遍历构建二叉树

重建二叉树的经典问题涉及中序和后序遍历。基本递归方法效率低,时间复杂度为O(n²)。优化方法利用哈希表和索引边界,将时间复杂度降至O(n),更适合实际应用。

Leetcode - 106. 从中序和后序遍历构建二叉树

DEV Community
DEV Community · 2025-04-24T18:45:26Z
Leetcode - 226. 翻转二叉树

二叉树翻转问题可以通过递归和迭代两种方法解决。递归方法简单,但深度超过1000时可能遇到调用栈限制;迭代方法使用队列,避免了这一问题。两种方法的时间复杂度均为O(n),空间复杂度分别为O(h)和O(n)。

Leetcode - 226. 翻转二叉树

DEV Community
DEV Community · 2025-04-19T18:51:01Z
Leetcode - 100. 同树

“同树”问题是经典面试题,检查两个二叉树的结构和节点值是否相同。提供三种解决方案:递归(DFS)、队列迭代(BFS)和栈迭代(DFS),时间复杂度均为O(n),空间复杂度分别为O(h)和O(n)。选择方法取决于树的深度和代码可读性。

Leetcode - 100. 同树

DEV Community
DEV Community · 2025-04-19T18:48:46Z
🌳 像专家一样遍历二叉树:深度优先搜索与广度优先搜索的视觉解析

本文介绍了二叉树的遍历方法,包括深度优先搜索(DFS)和广度优先搜索(BFS)。DFS有中序、前序和后序三种方式,适用于不同场景;BFS则逐层访问节点,适合寻找最短路径。这些遍历方法对树的操作至关重要。

🌳 像专家一样遍历二叉树:深度优先搜索与广度优先搜索的视觉解析

DEV Community
DEV Community · 2025-04-14T15:53:45Z
1123. 最深叶子节点的最近公共祖先

给定一棵二叉树的根节点,返回其最深叶子节点的最近公共祖先。通过后序遍历计算每个节点的左右子树最大深度,若深度相同,则当前节点为最近公共祖先。该方法的时间复杂度为O(n),空间复杂度为O(h)。

1123. 最深叶子节点的最近公共祖先

DEV Community
DEV Community · 2025-04-04T00:46:53Z

深度优先搜索(DFS)是一种图和树的遍历算法,从未访问的顶点开始,沿路径深入,回退后探索其他路径。DFS适用于树的遍历,使用递归或栈记录父节点。文章还介绍了如何在二叉树中计算最大路径和,通过DFS获取左右子树的最大值并比较,最终返回最大路径和。

算法模式:深度优先搜索

"地瓜哥"博客网
"地瓜哥"博客网 · 2025-04-01T02:43:31Z
LeetCode 993:二叉树中的表兄弟 - 深度优先搜索和广度优先搜索方法解析(Python)

在LeetCode第993题中,判断二叉树中两个节点是否为表兄弟。使用深度优先搜索(DFS)和广度优先搜索(BFS)两种方法,分别追踪节点的深度和父节点。最终通过比较深度和父节点来判断是否为表兄弟。

LeetCode 993:二叉树中的表兄弟 - 深度优先搜索和广度优先搜索方法解析(Python)

DEV Community
DEV Community · 2025-03-21T18:00:30Z
在Java中翻转二叉树

二叉树翻转是编程面试中的常见问题,要求交换每个节点的左右子树。可以通过广度优先搜索(BFS)或深度优先搜索(DFS)来实现,时间复杂度为O(n),空间复杂度为O(w)。此问题有助于理解树的遍历与操作。

在Java中翻转二叉树

DEV Community
DEV Community · 2025-03-15T02:35:04Z
深度优先遍历

二叉树的深度优先遍历有前序、中序和后序三种方式。DFS从根节点开始,优先访问左子树,再访问右子树。它基于递归和回溯,通常使用邻接表存储图,适用于查找连通分量和路径。与广度优先搜索(BFS)不同,DFS是深度优先的。

深度优先遍历

DEV Community
DEV Community · 2025-02-28T00:31:28Z
889. 从前序和后序遍历构建二叉树

给定二叉树的前序和后序遍历数组,通过前序数组的第一个元素确定根节点,利用后序数组确定左右子树的边界,递归构建二叉树。

889. 从前序和后序遍历构建二叉树

DEV Community
DEV Community · 2025-02-23T16:06:53Z
理解EIP-7864的统一二叉树

以太坊引入统一二叉树(UBT)以解决Merkle Patricia Trie的复杂性和存储问题。UBT通过简化树结构和优化存储方式,提高安全性和效率,适应未来量子计算的挑战。该提案仍在草案阶段,旨在简化以太坊规范并与状态过期EIP协同工作。

理解EIP-7864的统一二叉树

DEV Community
DEV Community · 2025-02-17T10:18:15Z
什么是完全二叉树

完全二叉树是指所有层级都被完全填满,除了最后一层可能不满,且最后一层的节点从左到右依次填充。其高度为log₂(N),其中N为节点总数。

什么是完全二叉树

DEV Community
DEV Community · 2025-02-16T00:18:00Z
层次遍历

二叉树的层次遍历按层进行,第一层为层级0,第二层为层级1,第三层为层级2,节点从左到右计数。

层次遍历

DEV Community
DEV Community · 2025-02-12T02:16:41Z
中序遍历

本文介绍了二叉树的基本实现,包括节点类定义和中序遍历函数,通过创建节点和构建树,最终输出中序遍历结果。

中序遍历

DEV Community
DEV Community · 2025-02-11T01:49:57Z
前序遍历

本文介绍了二叉树的遍历方法,包括前序遍历、后序遍历和中序遍历,并提供了递归实现前序遍历的C++代码示例。

前序遍历

DEV Community
DEV Community · 2025-02-10T15:42:59Z
数据结构:堆

堆是一种线性列表,元素包含数据和优先级,通常以二叉树形式表示,根节点为最高优先级。主要操作有插入、删除和调整优先级,时间复杂度分别为O(log n)和O(n)。堆的构建可通过排序或优化方法,后者复杂度为O(n)。

数据结构:堆

DEV Community
DEV Community · 2025-01-13T11:00:00Z
515. 每层树行中的最大值

给定一棵二叉树的根节点,使用广度优先搜索(BFS)逐层遍历,返回每层的最大值数组。时间复杂度为O(n),空间复杂度为O(w),其中w为树的最大宽度。

515. 每层树行中的最大值

DEV Community
DEV Community · 2024-12-26T01:00:10Z
找到每一行中的最大值

本文讨论了如何使用广度优先搜索(BFS)逐行遍历二叉树,找到每一行的最大值并返回结果。

找到每一行中的最大值

DEV Community
DEV Community · 2024-12-25T16:50:47Z
  • <<
  • <
  • 1 (current)
  • 2
  • 3
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码