LeetCode 156. 上下翻转二叉树(DFS)*

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给定一个二叉树,其中所有的右节点要么是具有兄弟节点(拥有相同父节点的左节点)的叶节点,要么为空
将此二叉树上下翻转并将它变成一棵树, 原来的右节点将转换成左叶节点。返回新的根。

例子:输入: [1,2,3,4,5]1/ \2   3/ \
4   5输出: 返回二叉树的根 [4,5,2,#,#,3,1]4/ \5   2/ \3   1  
说明:[4,5,2,#,#,3,1] 感到困惑? 下面详细介绍请查看 二叉树是如何被序列化的。二叉树的序列化遵循层次遍历规则,当没有节点存在时,'#' 表示路径终止符。这里有一个例子:1/ \2   3/4\5
上面的二叉树则被序列化为 [1,2,3,#,#,4,#,#,5].

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-upside-down
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:LeetCode 366. 寻找二叉树的叶子节点(上下翻转二叉树+BFS)
在这里插入图片描述

class Solution {//C++
public:TreeNode* upsideDownBinaryTree(TreeNode* root) {if(!root || !root->left) return root;TreeNode* l = root->left;//左右子节点存取来TreeNode* r = root->right;root->left = NULL;//上下断开root->right = NULL;TreeNode* p = upsideDownBinaryTree(l);//根节点l->left = r;//跟上面连接起来l->right = root;return p;}
};

4 ms 9.8 MB

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution: # py3def upsideDownBinaryTree(self, root: TreeNode) -> TreeNode:if not root or not root.left:return rootl = root.leftr = root.rightroot.left = Noneroot.right = Nonep = self.upsideDownBinaryTree(l)l.left = rl.right = rootreturn p

32 ms 13.6 MB


长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

httpd 分页_更改 Apache httpd.conf 配置文件

提示:如果在虚拟主机商配置,请直接配置第三、四步,因为支持 .htaccess 的空间已经配置好了前面两步。用编辑器打开 Apache 配置文件 httpd.conf(该文件位于 Apache 安装目录Apache2conf),并按如下步骤修改,。一、加载了…

C#23种设计模式WebCast讲解笔记大全(25讲)

C#面向对象设计模式第一讲:面向对象设计模式与原则 C#面向对象设计模式第二讲:Singleton Pattern单件模式(创建型模式) C#面向对象设计模式第三讲:Abstract Factory Pattern 抽象工厂模式(创建型模式&#…

textlayout Java_Java TextLayout.getBounds方法代码示例

import java.awt.font.TextLayout; //导入方法依赖的package包/类/*** {inheritDoc}*/Overridepublic void paintComponent(Graphics g) {updateSizes();Graphics2D g2d (Graphics2D) g;chatDisplay.removeOldMessages();Dimension size getSize();if (freeColClient.isMapEd…

LeetCode 311. 稀疏矩阵的乘法

文章目录1. 题目2. 解题2.1 暴力求解2.2 选取都不为0的行和列相乘1. 题目 给你两个 稀疏矩阵 A 和 B,请你返回 AB 的结果。 你可以默认 A 的列数等于 B 的行数。 请仔细阅读下面的示例。 示例: 输入: A [[ 1, 0, 0],[-1, 0, 3] ] B [[ 7…

jQuery UI应用--滑块Slider

1、 Animate: 类型Boolean 默认值false a) 用处:单击滑动区域时,滑块是否使用动画效果平滑移动到单击位置。 b) 代码示例: 创建实例时设置属性值 $(".class").slider({animate:true}); 实例化后得到…

java部署jar还是war优劣_详解Spring Boot 部署jar和war的区别

本文介绍了Spring Boot 部署jar和war两种方式的区别,分享给大家,具体如下: 1、 packaging的方式不同,一种设置成jar一种是war xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 cn.vcyber.www vcybe…

创业产品经理需要懂技术吗?

作为一位工程师,和一位在不断追求更好产品的设计人员。个人认为,产品经理最好是这样的:一、 精通技术。技术很容易框住人的思想,要不特别精通,能随时跳出技术的束缚,带给产品真正的提升。一般这种产品经理会…

LeetCode 281. 锯齿迭代器(map+vector)

文章目录1. 题目2. 解题1. 题目 给出两个一维的向量,请你实现一个迭代器,交替返回它们中间的元素。 示例: 输入: v1 [1,2] v2 [3,4,5,6] 输出: [1,3,2,4,5,6]解析: 通过连续调用 next 函数直到 hasNext 函数返回 false,next 函数返回值的…

[转载] 杜拉拉升职记——39 充满变数的时期

来源:李可. 杜拉拉升职记(第三版). 西安: 陕西师范大学出版社, 2010, 5. 39 充满变数的时期 何好德和几个销售总监分别谈了话。Tony林事先自然也多少听到些风声,等正式证实了,还是感觉郁闷极了,表面还得装没事人一样,知…

LeetCode 186. 翻转字符串里的单词 II

文章目录1. 题目2. 解题1. 题目 给定一个字符串,逐个翻转字符串中的每个单词。 示例: 输入: ["t","h","e"," ","s","k","y"," ","i","s","…

java自动的废料收集_Java 垃圾收集机制

对象引用Java 中的垃圾回收一般是在 Java 堆中进行,因为堆中几乎存放了 Java 中所有的对象实例。谈到 Java 堆中的垃圾回收,自然要谈到引用。在 JDK1.2 之前,Java 中的引用定义很很纯粹:如果 reference 类型的数据中存储的数值代表…

LeetCode 1198. 找出所有行中最小公共元素(二分/合并有序链表)

文章目录1. 题目2. 解题2.1 按列遍历2.2 二分查找2.3 合并k个有序链表1. 题目 给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了。 请你帮忙找出在所有这些行中 最小的公共元素。 如果矩阵中没有这样的公共元素,就请返回 -1。 示例&#x…

Java参数传递笔记

java值传递与引用传递 1、对象是按引用传递的---带""号的赋值操作 2、Java 应用程序有且仅有的一种参数传递机制,即按值传递---由"函数调用"引起的 3、按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本 4、…

java 分布式系统 面试_分布式系统的面试题9

1、面试题分布式服务接口请求的顺序性如何保证?2、面试官心里分析其实分布式系统接口的调用顺序,也是个问题,一般来说是不用保证顺序的。但是有的时候可能确实是需要严格的顺序保证。给大家举个例子,你服务A调用服务B,…

Windows phone 应用开发[14]-调用WebBrowser

很久没有更新博客了.最近一直陷身在项目中难以有时间抽身梳理总结.关于博客确实很多想写的主题.节前大概草草 的梳理一下大概就有十几个主题.只能趁着放假的时间来逐渐把这批文章力所能及系统的更新出来. 主要涉及到我们团队现在Windows phone 项目开发中实际碰到一些问题和对应…

LeetCode 369. 给单链表加一(递归)

文章目录1. 题目2. 解题1. 题目 用一个 非空 单链表来表示一个非负整数,然后将这个整数加一。 你可以假设这个整数除了 0 本身,没有任何前导的 0。 这个整数的各个数位按照 高位在链表头部、低位在链表尾部 的顺序排列。 示例: 输入: [1,2,3] 输出: …

java弹窗点击事件_[Java教程]jQuery的click事件在当前页弹出层窗口(不打开新页面)...

[Java教程]jQuery的click事件在当前页弹出层窗口(不打开新页面)0 2015-10-24 15:00:04当给链接添加一个click事件,我们可能不希望Web浏览器按照其常规模式退出当前页面并通过新页面载入链接的目的地,而是在当前页弹出层窗口(不打开新页面)。例如&#xf…

LeetCode 1430. 判断给定的序列是否是二叉树从根到叶的路径(递归)

文章目录1. 题目2. 解题1. 题目 给定一个二叉树,我们称从根节点到任意叶节点的任意路径中的节点值所构成的序列为该二叉树的一个 “有效序列” 。 检查一个给定的序列是否是给定二叉树的一个 “有效序列” 。 我们以整数数组 arr 的形式给出这个序列。 从根节点到…

工作笔记-SDRAM的读写

用Quartus II的MegaFunction中的FIFO时,通常会用到wrusedw或rdusedw这两个信号,前者标志当前FIFO已经被使用了多少Word,后者表示当前FIFO还有多少Word可供读取。需要注意的是,若在二者已经达到了最大值时继续进行相应的读写操作&a…

jre6-java运行环境_Java运行环境(JRE8)64位 1.8.0.25

Java 是一个通用术语,用于表示 Java 软件及其组件,包括“Java 运行时环境 (JRE)”和“Java 虚拟机 (JVM)”。相信很多用户都用过JAVA程序,它的应用不只是在手机,各种平台都有其用武之地。在PC平台上运行Java程序时,有时候会提示你缺少Java环境…