力扣 | 226. 翻转二叉树

本文介绍了如何使用递归算法实现二叉树的节点翻转,通过Solution类中的invertTree方法,对给定的树根进行操作,实现左右子节点的交换,从而达到翻转整个二叉树的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode invertTree(TreeNode root) {
        if(root == null)return root;
        if(root.left == null && root.right == null )return root;
        TreeNode left = invertTree(root.left);
        TreeNode right = invertTree(root.right);
        root.left = right;
        root.right = left;
        return root;
    }
}
### 关于LeetCode中的Java问题及其解决方案 在处理LeetCode上的Java编程问题时,可以参考多个资源来获取高质量的解答和思路。以下是关于如何查找与LeetCode相关的Java编程问题以及它们的解决方案的一些详细说明。 #### 资源汇总 1. **Python & JAVA Solutions for LeetCode** 这一资源提供了针对LeetCode上许多经典算法问题的Java实现方案[^1]。它涵盖了多种类型的题目,包括但不限于数组、链表、字符串、动态规划等领域的问题解决方法。 2. **LeetCode-Solutions** 此项目不仅包含了Python版本的解法,还提供了一些现代C++风格的代码示例,但对于寻找Java版答案的需求者来说同样适用,因为部分逻辑可以直接移植到Java环境中[^2]。虽然主要面向另一种语言开发人员,但它仍然能够帮助理解底层原理并转换成相应的Java语法形式。 3. **LintCode: Java Solutions** 针对某些特定类别如哈希表(Hash Table),滑动窗口(Sliding Window),字符串(Strings)等问题有专门讨论,并给出了详细的Java实现案例[^3]。这些分类有助于快速定位自己感兴趣的专题练习方向。 4. **Leetcode-146 LRU缓存(java中封装好的)** 对象设计型问题是面试常考知识点之一,在这里我们可以看到有关LRU Cache的具体实现细节描述及其实现过程分析[^4]。通过研究此类复杂结构的设计模式可以帮助提升整体编码能力水平。 #### 示例代码展示 下面给出一个简单的例子——反转二叉树(Binary Tree Invertion) 的Java 实现: ```java public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = left; this.right = right; } } class Solution { public TreeNode invertTree(TreeNode root) { if(root == null){ return null; }else{ //交换左右子节点 TreeNode tempNode = root.left; root.left = invertTree(root.right); root.right = invertTree(tempNode); return root; } } } ``` 此段程序展示了递归调用的方式完成整个二叉树镜像翻转的过程. #### 总结建议 对于希望深入学习LeetCode平台上各类挑战性较高的计算机科学基础概念并通过实践加以巩固的学习者而言,上述提到的各种开源资料都是非常宝贵的知识宝库。合理利用他们不仅可以提高个人解决问题的能力还可以积累宝贵的实战经验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值