leetcode题解102-翻转二叉树
发布日期:2025-04-05 04:47:31 浏览次数:8 分类:精选文章

本文共 593 字,大约阅读时间需要 1 分钟。

翻转一棵二叉树

问题描述:翻转一棵二叉树,交换其左右子树的位置,并对各子树递归进行翻转。

示例描述:输入二叉树和输出翻转后的结果,观察左右子树的位置是否交换,各子树是否也完成了翻转。

解题思路:使用递归的方法来实现二叉树的翻转。具体而言,首先交换根节点的左右子树,然后对左右子树分别递归进行翻转操作,直到左右子树为空为止。

代码实现:

class Solution {    public TreeNode invertTree(TreeNode root) {        if (root != null) {            // 交换左右子树            TreeNode temp = root.left;            root.left = root.right;            root.right = temp;            // 递归翻转左右子树            invertTree(root.left);            invertTree(root.right);        }        return root;    }}

这个递归方法主要做了以下几件事情:首先,根节点的左右子树位置被交换了;然后,递归调用左侧和右侧子树,继续对它们进行同样的翻转操作。这种方法确保了整个二叉树的翻转完成。

上一篇:leetcode题解104- 二叉树的最大深度
下一篇:leetcode题解102-二叉树的层序遍历

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年05月13日 20时05分34秒