【LeetCode刷题(数据结构与算法)】:上下翻转二叉树

news2024/11/26 21:51:45

在这里插入图片描述

给你一个二叉树的根节点 root ,请你将此二叉树上下翻转,并返回新的根节点
你可以按下面的步骤翻转一棵二叉树:
原来的左子节点变成新的根节点
原来的根节点变成新的右子节点
原来的右子节点变成新的左子节点
在这里插入图片描述
上面的步骤逐层进行。题目数据保证每个右节点都有一个同级节点(即共享同一父节点的左节点)且不存在子节点
示例 1:
在这里插入图片描述
输入:root = [1,2,3,4,5]
输出:[4,5,2,null,null,3,1]
示例 2:
输入:root = []
输出:[]
示例 3:
输入:root = [1]
输出:[1]
思路:依次交换左 有 根节点 最后返回交过后的根节点即可解决问题
代码

struct TreeNode* upsideDownBinaryTree(struct TreeNode* root){
    if(root==NULL)
    {
        return 0;
    }
    struct TreeNode*parent=NULL;
    struct TreeNode*parent_left=NULL;
    struct TreeNode*parent_right=NULL;
    while(root!=NULL)
    {
        parent_left=root->left;
        root->left=parent_right;
        parent_right=root->right;
        root->right=parent;
        parent=root;
        root=parent_left;
    }
    return parent;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1097139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据中间件——Kafka

Kafka安装配置 首先我们把kafka的安装包上传到虚拟机中: 解压到对应的目录并修改对应的文件名: 首先我们来到kafka的config目录,我们第一个要修改的文件就是server.properties文件,修改内容如下: # Licensed to the …

【每日一题】只出现一次的数字 III

文章目录 Tag题目来源题目解读解题思路方法一:位运算 其他语言cpython3 写在最后 Tag 【位运算】【数组】【2023-10-16】 题目来源 260. 只出现一次的数字 III 题目解读 找出数组中恰好只出现一次的连个元素,其余的所有元素均出现两次。要求算法的时间…

获取Steam余额的几种方式,及Steam余额被红锁的几种情况

今天就跟大家聊聊买余额的话题,获取Steam余额的几种方式,及Steam余额被红锁的几种情况。 什么是买余额呢? 指的就是卖家通过steam市场里面的饰品出售功能,把steam账号里的余额转移到买家账号中。 大家都知道,自从充值…

【前段基础入门之】=>CSS3新特性 2D 变换

导语: CSS3新特性,给我们带来了很多的丰富的过渡变换效果,这些效果使我们的页面效果变得更加的生动,这一章节,就给大家带来CSS3中的第一个变换效果:2D 变换 在正式了解2D 变换之前,我们需要了解&#xff0c…

啥?PS一秒成图?Adobe的逆天黑科技大公开

在日前举行的 Adobe MAX 创意大会上,Adobe Adobe Firefly Image 2(萤火虫二代成像模型)、Firefly Vector Model(萤火虫矢量模型)和Firefly Design Model(萤火虫设计模型)。 Firefly矢量模型是世…

155M传输分析仪 优劣势分析

D240S SDH测试模块,是FT100智能网络测试平台产品家族的一部分,是一个坚固耐用、锂电池超长供电的传统PDH/SDH测试解决方案,支持155Mbps到2.048Mbps速率的传输链路测试。支持在线和离线的传输链路的安装、维护和故障排除应用测试。 同时为经验…

分享一下微信小程序怎么添加抽奖活动

微信小程序是一种无需下载安装即可使用的应用,近年来在各行各业中得到了广泛应用。对于企业或商家而言,利用微信小程序开展抽奖活动可以吸引更多的用户关注,增加用户粘性并促进品牌传播。下面就以微信小程序添加抽奖活动为主题,探…

【Linux】环境下部署Nginx服务 - 二进制部署方式

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

SOLIDWORKS PDM—2024版本新增

SOLIDWORKS产品数据管理 (PDM) 解决方案可帮助您控制设计数据,并且从本质上改进您的团队就产品开发进行管理和协作的方式。使用 SOLIDWORKS PDM Professional,您的团队能够:1. 安全地存储和索引设计数据以实现快速检索;2. 打消关于…

从简单到复杂,MVI 架构定义与封装使用总结

前言 时间回到一年多前讨论度很高的 MVI 架构,现在也已尘埃落地,没有什么争议并各自都有自己的一套实现方案了,接下来我们就看看这些网上各种各样的 MVI 架构是如何从简单到复杂,从 Java 到 Kotlin 到协程再到 Compose 的各个场景…

gitee page中HTML显示乱码

参考的:静态HTML网页部署到gitee后中文乱码-CSDN博客 根据上述引用的博客做完后要记得在gitee page中更新(我就是没点更新以为用不了)

广告牌安全传感器怎么用?为城市能起到什么效果?

随着城市的迅速发展和经济的快速增长,广告牌在城市中扮演着越来越重要的角色。但是近年来广告牌缺乏修缮和维护,广告牌所带来的安全隐患逐年增加。 广告牌作为城市的明信片,出现损坏,且具有一定的安全隐患之后,给城市带…

你不一定全部知道的16种进程注入方法和注入工具(C语言版)

一、前言 提起进程注入,似乎感觉挺奇妙的,毕竟这是黑客的入门必备技术之一,互联网发展这么多年,每年都会有新的技术出现,自然也就有了很多的进程注入的方法。今天小编要和大家讲的是16种我们比较常见的进程注入方法&a…

进化策略算法

前言 进化策略 (Evolution Strategy) 后面都简称 ES,其本质就是:种群通过交叉产生后代,我们只保留较好的父代和子代,一直这样迭代下去, 我们的保留方式是: 父代产生后代,然后将后代DNA和原来的…

C++入门-引用

C入门-引用 前置知识点:函数栈帧的复用前置知识点:类型转换时产生的临时变量1.含义2.代码形式3.引用的价值1.传参数传参效率测试补充:C与Java中引用的区别 2.引用做返回值(前置知识:栈帧复用)1.传值返回2.传引用返回传引用返回并用引用接收3.静态变量传引用返回4.引用做返回值真…

Redis数据结构的奇妙世界:一窥底层存储机制【redis第一部分】

Redis数据结构的奇妙世界:一窥底层存储机制【redis第一部分】 前言第一:为什么要使用redis第二:redis的底层数据结构第三:Redis的基本数据类型1. 字符串(String)2. 列表(List)3. 集合…

Ansible的playbook编写和运行示例介绍

目录 一.yaml语法格式 1.定义: 2.yaml支持几种数据类型 (1)纯量: (2)对象 (3)数组 3.playbook-yaml书写的注意事项 二.playbook编写和运行 1.单个简单playbook示例 &#…

2023_Spark_实验二十:SparkStreaming累加计算单词频率

一、需求分析 在服务器端不断产生数据的时候,sparkstreaming客户端需要不断统计服务器端产生的相同数据出现的总数,即累计服务器端产生的相同数据的出现的次数。 二、实验环境 centos7 nc spark2.1.1 windows idea 三、思路分析 流程分析 思路分析…

BUUCTF学习(7): 随便注,固网杯

1、介绍 2、解题 11;show tables;# select * from 1919810931114514 concat(sel,ect from 1919810931114514 ) PEREPARE y from sql; ECCUTE y; -1; sEt sql CONCAt(se,lect * from 1919810931114514;); prePare stmt from sql; EXECUTE stmt; # 结束

代码随想录算法训练营第二十三天丨 回溯算法part01

回溯算法理论基础 #题目分类 #理论 #什么是回溯法 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 在二叉树系列中,不止一次提到了回溯,例如二叉树:以为使用了递归,其实还隐藏着回溯 (opens new window)。 回溯…