040:二叉树的中序遍历

LeetCode 94 https://leetcode.cn/problems/binary-tree-inorder-traversal/description/ 难度:简单 二叉树中序遍历的递归实现。 时间复杂度:O(n),其中 n 为二叉树节点的个数。二叉树的遍历中每个节点会被访问一次且只会被访问一次。 空间复杂度:O(n)。空间复杂度取决于递归的栈深度,而栈深度在二叉树为一条链的情况下会达到 O(n) 的级别。 ...

六月 30, 2025 · Cassius

039:二叉树的右视图

LeetCode 199 https://leetcode.cn/problems/binary-tree-right-side-view/description/ 难度:中等 先递归右子树,再递归左子树,当某个深度首次到达时,对应的节点就在右视图中。 时间复杂度:O(n),其中 n 是二叉树的节点个数。 空间复杂度:O(h),其中 h 是二叉树的高度。递归需要 O(h) 的栈空间。最坏情况下,二叉树退化成一条链,递归需要 O(n) 的栈空间。 ...

六月 30, 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

019:二叉树的最近公共祖先

LeetCode 236 https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description/ 难度:中等 二叉树题目。如果当前节点为空,或者为 p,或者为 q,直接返回当前节点。 如果左右子树都找到 p 或 q,返回当前节点。 如果左子树找到 p 和 q,返回左子树的结果。 如果右子树找到 p 和 q,返回右子树的结果。 如果左右子树都没找到,返回空节点。 时间复杂度:O(n),其中 n 为二叉树的节点个数。 空间复杂度: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