Java114 LeeCode 翻转二叉树

翻转二叉树

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

先想思路,看题解,对照题解思路一不一样,很一样直接开始写,没思路直接看题解

思路:root 遍历 交换左右子树 左子树先存储到数组 左子树=右子树

java 复制代码
class Solution {
	public TreeNode invertTree(TreeNode root) {
		//递归函数的终止条件,节点为空时返回
		if(root==null) {
			return null;
		}
		//下面三句是将当前节点的左右子树交换
		TreeNode tmp = root.right;
		root.right = root.left;
		root.left = tmp;
		//递归交换当前节点的 左子树
		invertTree(root.left);
		//递归交换当前节点的 右子树
		invertTree(root.right);
		//函数返回时就表示当前这个节点,以及它的左右子树
		//都已经交换完了
		return root;
	}
}

作者:王尼玛
链接:https://leetcode.cn/problems/invert-binary-tree/solutions/73159/dong-hua-yan-shi-liang-chong-shi-xian-226-fan-zhua/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



为啥飘红了?

java 复制代码
import javax.swing.tree.TreeNode;

/**
 * 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;
 *     }
 * }
 */
public class Solution2 {
    public TreeNode invertTree(TreeNode root) {
// 定义数组,存储节点 注释
        //从最底层节点考虑 如果遍历到最底层 位空 返回空
       if(root==null){
        return null;
       }
//定义多个 存储任意字符元素的数组 注释
        //交换 当前节点 根左右交换
        //
        TreeNode tmp=root.right;//错误 定义tmp  因为 root.right是Treenode格式 所以定义tmp也是Treenode格式
       root.right=root.left;
       root.left=tmp;
       //为啥飘红了?
        //再次调用本方法 每个当前节点的左右都进行执行 当前节点的左右节点的左右节点进行交换 一直持续到没有左右节点 返回空 持续到最底层 返回空
        //倒数第一层返回本身节点 及底下空
        invertTree(root.left);
        invertTree(root.right);
        return root;//返回当前节点 最后一层的下一层返回空 最后一层返回本节点 及底下空 倒数第二层节点 返回 本节点及左右节点 持续返回i

    }
}

测试通过了

相关推荐
步步为营DotNet29 分钟前
深度解析CancellationToken:.NET中的优雅取消机制
java·前端·.net
JH30739 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
Coder_Boy_10 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
invicinble10 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟10 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖11 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
qq_124987075312 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_12 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Mr_sun.12 小时前
Day06——权限认证-项目集成
java
瑶山12 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard