226. 翻转二叉树 - 力扣(LeetCode)

方法1:递归法

  • 时间:O(n) ------ 每个节点访问一次
  • 空间:O(h) ------ 递归栈深度(h 为树高,最坏 O(n),平均 O(log n))
python 复制代码
# encoding = utf-8
# 开发者:Alen
# 开发时间: 12:24 
# "Stay hungry,stay foolish."

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def invertTree(self, root):
        """
        :type root: Optional[TreeNode]
        :rtype: Optional[TreeNode]
        """
        if not root:
            return None

        root.left, root.right = root.right, root.left

        self.invertTree(root.left)
        self.invertTree(root.right)
        return root

方法2:迭代法(使用栈)

  • 时间:O(n)
  • 空间:O(h) ------ 栈最多存 h 个节点
python 复制代码
# encoding = utf-8
# 开发者:Alen
# 开发时间: 12:24 
# "Stay hungry,stay foolish."

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def invertTree(self, root):
        """
        :type root: Optional[TreeNode]
        :rtype: Optional[TreeNode]
        """
        if not root:
            return None

        stack = [root]
        while stack:
            node = stack.pop()

            node.left, node.right = node.right, node.left

            if node.left:
                stack.append(node.left)
            if node.right:
                stack.append(node.right)
        return root

结果

解题思路

相关推荐
啊森要自信6 小时前
CANN ops-cv:AI 硬件端视觉算法推理训练的算子性能调优与实战应用详解
人工智能·算法·cann
仟濹6 小时前
算法打卡day2 (2026-02-07 周五) | 算法: DFS | 3_卡码网99_计数孤岛_DFS
算法·深度优先
驭渊的小故事6 小时前
简单模板笔记
数据结构·笔记·算法
YuTaoShao6 小时前
【LeetCode 每日一题】1653. 使字符串平衡的最少删除次数——(解法一)前后缀分解
算法·leetcode·职场和发展
VT.馒头7 小时前
【力扣】2727. 判断对象是否为空
javascript·数据结构·算法·leetcode·职场和发展
goodluckyaa7 小时前
LCR 006. 两数之和 II - 输入有序数组
算法
孤狼warrior7 小时前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
Σίσυφος19007 小时前
PCL法向量估计 之 RANSAC 平面估计法向量
算法·机器学习·平面
xhbaitxl7 小时前
算法学习day39-动态规划
学习·算法·动态规划
I_LPL7 小时前
day23 代码随想录算法训练营 回溯专题2
算法·hot100·回溯算法·求职面试