084:二叉树最大宽度

LeetCode 662 https://leetcode.cn/problems/maximum-width-of-binary-tree/description/ 难度:中等 这道题类似二叉树层序遍历,但是除了要保留节点本身,还需要保留节点在本层的编号。对节点 i,左儿子为 2 * i,右儿子为 2 * i + 1。 另外,由于最大 3000 个节点,如果是一条只有右儿子的链,那么编号会达到 \(2^3000\),任何数据类型都会溢出,所以我们需要使用 unsigned long long 类型,当溢出后会重新回到 0,而不会报错。 时间复杂度:O(n),其中 n 是二叉树的节点个数。需要遍历所有节点。 空间复杂度:O(n)。广度优先搜索的空间复杂度最多为 O(n)。 ...

七月 5, 2025 · Cassius

020:二叉树的锯齿形层序遍历

LeetCode 103 https://leetcode.cn/problems/binary-tree-zigzag-level-order-traversal/description/ 难度:中等 这道题类似 LeetCode 102,只是需要判断当前层的奇偶性,如果是偶数,需要把当前层的结果翻转后再加入答案。 时间复杂度:O(n),其中 n 为二叉树的节点个数。 空间复杂度:O(n)。满二叉树(每一层都填满)最后一层有大约 n/2 个节点,因此数组中最多有 O(n) 个元素,所以空间复杂度是 O(n) 的。 ...

六月 29, 2025 · Cassius

011:二叉树的层序遍历

LeetCode 102 https://leetcode.cn/problems/binary-tree-level-order-traversal/description/ 难度:中等 这道题是 BFS 的经典题目。本题使用两个数组 cur 和 nxt 来实现 BFS。 时间复杂度:O(n),其中 n 为二叉树的节点个数。 空间复杂度:O(n)。满二叉树(每一层都填满)最后一层有大约 n/2 个节点,因此数组中最多有 O(n) 个元素,所以空间复杂度是 O(n) 的。 ...

六月 28, 2025 · Cassius