226. 翻转二叉树

数字IC后端实战:如何用ICC搞定复杂模块的floorplan与powerplan(附避坑指南) 本文深入解析数字IC后端设计中复杂模块的floorplan与powerplan实战技巧,重点介绍多边形模块边界处理、MTCMOS电源网络优化及存储器摆放陷阱规避。通过Synopsys ICC工具的具体操作示例和项目实战经验,帮助工程师高效解决设计难题,提升芯片性能与可靠性。 阅读详情
/**
 * 226. 翻转二叉树
 * @author wsq
 * @date 2020/09/16
 	翻转一棵二叉树。

	示例:
	输入:
	     4
	   /   \
	  2     7
	 / \   / \
	1   3 6   9
	输出:
	
	     4
	   /   \
	  7     2
	 / \   / \
	9   6 3   1

	链接:https://leetcode-cn.com/problems/invert-binary-tree
 */
package com.wsq.leetcode;


//  Definition for a binary tree node.
class TreeNode {
	
	int val;
    TreeNode left;
    TreeNode right;
    TreeNode(int x) { val = x; }
}
 

public class InvertTree {
	/**
	 *	翻转二叉树(递归方式实现)
	 *	翻转以root根节点的二叉树,大致流程如下:
	 *	1. 翻转root的左子树
	 *	2. 翻转root的右子树
	 *	3. 修改root的左右子树的指针(root.left->原root.right
	 *						root.right->原root.left)
	 * @param root
	 * @return
	 */
    public TreeNode invertTree(TreeNode root) {
    	if(root == null) {
    		return null;
    	}
    	if(root.left == null && root.right == null) {
    		return root;
    	}
    	TreeNode tmpNode = invertTree(root.left);
    	root.left = invertTree(root.right);
    	root.right = tmpNode;
    	return root;
    }
    
    public static void main(String[] args) {
    	int[] a = {4,2,7,1,3,6,9};
    	TreeNode root = buildTree(a, 0);
    	InvertTree it = new InvertTree();
    	it.invertTree(root);
	}
    
    public static TreeNode buildTree(int[] a, int pos) {
    	if(pos >= a.length) {
    		return null;
    	}
    	TreeNode root = new TreeNode(a[pos]);
    	root.left = buildTree(a, 2 * pos + 1);
    	root.right = buildTree(a, 2 * pos + 2);
    	return root;
    }
}

文件上传漏洞攻击与防范方法 文件上传漏洞攻击与防范方法 文件上传漏洞简介: 文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。 文件上传漏洞危害: 上传漏洞与SQL注入或 XSS相比 , 其风险更大 , 如果 Web应用程序存在上传漏洞 , 攻击者上传... 阅读详情

相关推荐

Windows 10下用vcpkg一键搞定libcurl开发环境(Code::Blocks 20.03配置指南)

本文详细介绍了在Windows 10系统下使用vcpkg工具快速配置libcurl开发环境的完整指南,特别针对Code::Blocks 20.03 IDE进行优化设置。通过vcpkg自动化管理依赖项,简化libcurl的安装与配置过程,帮助开发者高效搭建网络通信功能开发环境,并提供了常见问题解决方案和实际项目中的最佳实践。

weixin_28040125的博客 251

LeetCode226. 翻转二叉树

本文为LeetCode226. 翻转二叉树的解析,欢迎学习!

Toby的博客 196

STM32 BootLoader 入门教程:从原理到 APP 跳转实现

在 STM32 项目开发中,BootLoader 通常用于实现固件升级、程序引导和应用程序校验。本文从最基础的 BootLoader 原理开始,讲解 STM32 内部 Flash 分区设计、APP 地址偏移、向量表重定位、BootLoader 跳转 APP 的核心代码,以及实际开发中常见的问题。本文适合刚开始接触 STM32 BootLoader、IAP 在线升级、串口升级、OTA 升级的开发者阅读。

lidecong133的博客 1678

翻转二叉树 LeetCode简单题

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root = [2,1,3] 输出:[2,3,1] 示例 3: 输入:root = [] 输出:[] /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;

轩玉的博客 733

使用moveit!控制真实机械臂(5)——编写真实机械臂节点中的action服务程序

上一篇文章中,我们简要介绍了ROS中action的基本知识,为了控制真实机械臂,我们已经修改了moveit配置文件,使得moveti启动后具备一个control_msgs::FollowJointTrajectoryAction类型的action客户端,接下来,我们完成该类型action的另一半,编写C++程序来实现action的服务端。由于底层机器人控制程序一般差别都很大,这里展示的只是编程要点...

爱学习的草莓熊 1万+

VS2019+EasyX图形库实战:手把手教你用C语言打造消消乐小游戏(附完整源码)

本文详细介绍了如何使用VS2019和EasyX图形库从零开始构建一个C语言消消乐小游戏。通过环境配置、数据结构设计、界面绘制、交互实现到游戏逻辑完善的完整流程,帮助开发者掌握图形编程和游戏开发的核心技巧,并附有完整源码供参考。

bush的博客 186

LeetCode 226 翻转二叉树

LeetCode 226 翻转二叉树 题目链接 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 简单 BFS,从根结点往下,依次交换左右儿子即可,AC代码如下: class Solution { public: TreeNode* invertTree(TreeNode* root) { queue

旺崽的博客 2656

使用 Cynthion 与 Packetry 进行 USB 抓包与协议分析

Cynthion 是 Great Scott Gadgets 推出的USB 流量分析与注入设备。它具备以下特点:通过 FPGA 实现高速 USB 流量捕获;能够同时作为 USB Host 和 Device,进行调试和测试;支持输出 pcap 文件,可直接用 Wireshark 分析;提供 Python API,方便与上层软件联动。简单来说,Cynthion 是一个USB 协议分析仪 + 注入工具。硬件层捕获:实时拦截 USB 总线上的数据包;软件层解析。

YIMUleizi的博客 1264

Leetcode 226. 翻转二叉树

Leetcode 226. 翻转二叉树1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/invert-binary-tree/   本质上就是一个二叉树的遍历问题。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决   笔者以C++方式解决。 #include "iostream" using namespace std; #include "a

珍惜 9064

VOF模型求解方法:从SIMPLEC到PISO的稳定性优化策略

本文深入探讨了VOF模型求解方法中SIMPLEC与PISO算法的稳定性优化策略,重点分析了两种算法在稳态和瞬态问题中的应用差异。通过对比PRESTO离散化方法与其他格式的优劣,提供了针对多相流模拟的实用设置建议和稳定性优化技巧,帮助工程师有效提升计算效率和精度。

yellow的专栏 1154

Spring AI 项目实战(十八):Spring Boot + AI + Vue3 + OSS + DashScope 实现高效语音识别系统(附完整源码)

本文介绍基于 Spring Boot AI 集成阿里云 OSS 与 DashScope 语音识别 API 的高效语音识别系统。该系统通过云端存储音频文件,解决传统本地存储的性能瓶颈与存储压力,支持同步 / 异步语音转文本,实现文件自动生命周期管理。文中详述技术选型、架构设计、核心代码实现(含前后端及配置)、部署流程,展现其高并发处理、可靠文件管理能力,适用于客服、教育等企业级场景,为语音识别应用提供实用解决方案。

博客 1537

LeetCode 226. 翻转二叉树

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 226. 翻转二叉树,做好准备了么,那么开始吧。 🌲🌲🐴🐴

weixin_62275996的博客 167

1 初识智能化测试

非常感谢您可以和我一起来聊一聊智能化测试的一些事。智能化测试是一个新鲜又老旧的问题,说新鲜是因为很多人当听到智能化测试都会联想到人工智能、机器学习、深度学习等高大上的技术,很多时候觉得离我们的实际工作还很远;说老旧,是因为智能化测试的一些技术的发展在行业里面已经很久了,例如符号执行、静态分析等技术已经有很长的历史了。近些年,随着测试技术的的飞速发展,智能化测试也有了越来越多的实践,优秀的开源项目慢慢的被行业推行并且落地。那么在这里我们就一起来聊聊智能化测试以及智能化测试好的思路、实践、方法以及技术落地过程。

Criss@陈磊 2626

LeetCode 226翻转二叉树

LeetCode 226翻转二叉树 题目简述:翻转一棵二叉树。 输入:[4, 2, 7, 1, 3, 6, 9] 输出:[4, 7, 2, 9, 6, 3, 1] 思路:递归遍历整棵二叉树,遍历到每个节点时交换左右儿子。时间复杂度O(n) class Solution { public: TreeNode* invertTree(TreeNode* root) { if(!root) return 0; swap(root->left, root-&

XBlog 172

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LeetCode第226题_翻转二叉树

LeetCode第226题要求翻转一棵二叉树,即将每个节点的左右子树交换位置。题目提供了递归和迭代两种解法。递归方法通过先翻转左右子树,再交换当前节点的左右子树来实现,时间复杂度为O(n),空间复杂度为O(h),其中h为树的高度。迭代方法使用队列进行层序遍历,依次交换每个节点的左右子树,时间复杂度同样为O(n),空间复杂度为O(n)。代码实现提供了C#、Python和C++三种语言的版本,分别展示了递归和迭代的具体实现。

qq_40263592的博客 1281

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

leetcode 226. 翻转二叉树

leetcode 226. 翻转二叉树 题目详情 题目链接 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。 我的代码 /** * Definition for

qq_33789406的博客 106

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Leetcode226. 翻转二叉树

Leetcode226. 翻转二叉树 题目; 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 题解: 迭代、递归 scala代码如下: /** * 迭代 * * @param roo...

会流泪de鱼的博客 228

力扣226 翻转二叉树

即左右进行交换再递归 /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ struct TreeNode* invertTree(struct Tre...

qq_40519283的博客 359

Leetcode226. 翻转二叉树(C语言)

Leetcode226. 翻转二叉树(C语言) 数据结构-树:算法与数据结构参考 题目: 翻转一棵二叉树。例: 输入:[4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 思路: 递归 代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct T...

jeanlu的博客 830

二叉树OJ题:LeetCode--226.翻转二叉树

LeetCode--226.翻转二叉树:使用C语言递归实现的详细解题思路,你也快来试试吧!

Yikefore的博客 772

LeetCode--226 翻转二叉树

题目 翻转一棵二叉树。 示例 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 /** * Definition for a binary tree node. * struct TreeNode { * int va...

Courage-Hu的专栏 265

【LeetCode226】翻转二叉树

假设你有一个大盒子,里面装着一个小盒子,小盒子里又装着更小的盒子……一直到最小的盒子里什么都没有。每个盒子的结构都和大盒子一样,只不过尺寸变小了。解决问题的时候,你可以先解决最小盒子的问题,再一层一层往外解决,这就是递归的做法。递归就是类似这种“在里面还藏着同样的东西”的思想。(同样的东西,或许是同样的函数映射)简单来说,递归思想就是把一个大问题拆成和原问题很像但更小的问题,一直拆到最简单的时候再一步步合起来解决。这样的方法就叫做递归。形成递归解决方案/形成递归结构的通用模式。

Pyroyster的博客 411
上一篇: 决策树笔记
下一篇: 19. 删除链表的倒数第N个节点
Lazy mode
博客等级 码龄10年 13粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值