文章目录

  • 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阿明),一起加油、一起学习进步!

LeetCode 156. 上下翻转二叉树(DFS)*相关推荐

  1. 【leetcode 971】 翻转二叉树以匹配先序遍历

    题意: 给定一个先序遍历序列,给出一棵树,问能否通过翻转改树的某些左右子节点,使得该树的先序遍历序列等于给定的先序遍历序列 思路: 很基础的题目了,就是先序遍历一下,如果在这个节点的左子节点的值不等于 ...

  2. leetcode系列-226.翻转二叉树

    题目描述: 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点. 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] /*** Def ...

  3. LeetCode 366. 寻找二叉树的叶子节点(上下翻转二叉树+BFS)

    文章目录 1. 题目 2. 解题 1. 题目 给你一棵二叉树,请按以下要求的顺序收集它的全部节点: 依次从左到右,每次收集并删除所有的叶子节点 重复如上过程直到整棵树为空 示例: 输入: [1,2,3 ...

  4. java翻转树_【LeetCode(Java) - 156】上下翻转二叉树

    [LeetCode(Java) - 156]上下翻转二叉树 [LeetCode(Java) - 156]上下翻转二叉树 文章目录 1.题目描述 2.解题思路 3.解题代码 1.题目描述 2.解题思路 ...

  5. 《LeetCode力扣练习》第226题 翻转二叉树 Java

    <LeetCode力扣练习>第226题 翻转二叉树 Java 一.资源 题目: 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点. 示例 1: 输入:root = [4, ...

  6. 【LeetCode】【HOT】226. 翻转二叉树(递归)

    [LeetCode][HOT]226. 翻转二叉树 文章目录 [LeetCode][HOT]226. 翻转二叉树 package hot;import java.util.ArrayDeque; im ...

  7. 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)

    文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...

  8. [LeetCode] Invert Binary Tree - 二叉树翻转系列问题

    目录: 1.Invert Binary Tree - 二叉树翻转 [递归] 题目概述: Invert a binary tree. 4/ \2 7/ \ / \ 1 3 6 9 to 4/ \7 2/ ...

  9. 【Leetcode | 48】226. 翻转二叉树

    翻转一棵二叉树. 示例: 输入: 4    /   \   2     7   / \   / \ 1   3 6   9 输出: 4    /   \   7     2   / \   / \ 9 ...

最新文章

  1. python专科就业_利用Python分析复旦大学近五年转专业失败的情况
  2. 微信小程序 java 传值_微信小程序传值获取值的实例方法
  3. 一句话总结等距映射(流形学习)
  4. linux执行python不打印_在Python中执行shell程序而不打印到屏幕
  5. java 循环stringbuffer_java常用类-----StringBuilder和StringBuffer的用法
  6. 类写了package java命令出错_java/javac命令行如何同时引用多个包;错误 TypeError: 'JavaPackage' object is not callable 的含义...
  7. android系统功耗优化(1)---高通平台功耗优化的基础知识
  8. 理想汽车10月份新增12家直营交付中心 蔚来第1000座充电站上线
  9. 全国计算机二级ms office知识点,2017全国计算机二级MSOffice复习知识点
  10. 我是如何旅游 5 个月拿到 3 份 Offer 并收入翻倍的
  11. matlab浪漫画图,Matlab技巧11:谁说数学人不懂浪漫——Matlab画隐函数曲面
  12. linux telnet命令 220,Linux使用telnet命令的方法(2)
  13. Android内存泄漏总结,成功拿下大厂offer
  14. 保姆级PS教程:建筑表现后期中的照明处理
  15. 高刷显示器变成24Hz的原因及解决方法
  16. vue 生成 证书模板 并支持 图片下载和导出PDF的demo
  17. python实验大纲_Python程序设计实验-教学大纲-段震
  18. PCIE TLP 写中断
  19. nodejs之pathinfo/pathname的使用
  20. 解决Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 14.x

热门文章

  1. Django中celery配置总结
  2. 血红蛋白判断access程序答案_普渡大学开发智能手机应用程序 帮助评估贫血症情况...
  3. Java IO 系统
  4. Django,Ajax,Vue实现文章评论功能
  5. ios微信本地视频上传到服务器,ios本地视频wx.uploadFile上传
  6. 高地址和低地址、高字节低字节、大小端模式的转换,存储顺序
  7. 在 Mac 上通过 Docker 运行 Asp.net Core 简易教程
  8. Apache 配置:是否显示文件列表
  9. iOS 测试三方 KIF 的那些事
  10. Javadoc的Html文件传输chm