Leetcode 226. 翻转二叉树 题目:

翻转一棵二叉树。

示例:

输入:


输出:


备注:

这个问题是受到 Max Howell 的 原问题 启发的 :

谷歌:

我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。

思路:

首先这是一道很经典的二叉树问题。显然,我们从根节点开始,递归地对树进行遍历,并从叶子结点先开始翻转。如果当前遍历到的节点 root 的左右两棵子树都已经翻转,那么我们只需要交换两棵子树的位置,即可完成以 root 为根节点的整棵子树的翻转。

Java AC代码:

public class Leetcode226 {public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}public TreeNode invertTree(TreeNode root) {if (root == null) {return null;}TreeNode left = invertTree(root.left);TreeNode right = invertTree(root.right);root.left = right;root.right = left;return root;}
}

但是此时内存消耗没有超过50%以上的用户,向我精益求精的人怎么会就此停止呢。

于是在原来代码的基础上做了一些处理。

Java AC代码优化 :

public class Leetcode226 {public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}public TreeNode invertTree(TreeNode root) {makeInvertTree(root);return root;}public static void makeInvertTree(TreeNode root) {if (root == null) {return;}TreeNode temp;if (root.left != null && root.right != null) {temp = root.left;root.left = root.right;root.right = temp;makeInvertTree(root.left);makeInvertTree(root.right);} else if (root.left != null && root.right == null) {temp = root.left;root.left = null;root.right = temp;makeInvertTree(root.right);} else if (root.left == null && root.right != null) {temp = root.right;root.right = null;root.left = temp;makeInvertTree(root.left);}}
}

虽然没有达到双百,但是90多还算可以。

2020.9.16打卡

Rayman的绝顶之路——Leetcode每日一题打卡20相关推荐

  1. LeetCode每日一题打卡组队监督!刷题群!

    近 2000 人已经加入共同刷题啦! 群友每天都会在群里给大家讲解算法题 每周日「负雪明烛」组织直播讲题 我相信来看我博客的大部分人都是通过LeetCode刷题过来的.最近发现LeetCode中文网站 ...

  2. 关于LeetCode每日一题打卡失败的感悟

    背景 今年5月,报名参加了三叶姐的"五月打卡活动",押金29.9元,要求每天在力扣上每日一题打卡,完成则押金全退,完不成则押金不退. 事件 2022.5.10,LeetCode上的 ...

  3. Leetcode每日一题(914. 卡牌分组)

    914. 卡牌分组 题目: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数 ...

  4. LeetCode 每日一题打卡:334.递增的三元子序列

    题目 334.递增的三元子序列 题目大意 给你一个整数数组numsnumsnums ,判断这个数组中是否存在长度为333的递增子序列. 如果存在这样的三元组下标(i,j,k)(i, j, k)(i,j ...

  5. 【Leetcode 每日一题】514. 自由之路(BFS+优先队列)

    Leetcode 每日一题 题目链接:514. 自由之路 难度: 困难 解题思路: 这道题乍一看,可以选择用动态规划或者BFS来求解.本文使用BFS来进行解答.注意到题中有一个最小的到路径.所以我们可 ...

  6. leetcode每日刷题计划-简单篇day8

    leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...

  7. Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)

    思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...

  8. 【LeetCode每日一题】1723. 完成所有工作的最短时间

    [LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...

  9. leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

    leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...

  10. LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色

    LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...

最新文章

  1. BZOJ4555[HEOI2016/TJOI2016]求和
  2. 我的cookie读写
  3. oppo刷机工具_黔隆科技刷机教程OPPOR9TM忘记密码免刷机保资料解屏幕锁教程
  4. dmv io读写高的sql_适用于DBA的前8大新(或增强)SQL Server 2017 DMV和DMF
  5. ProcExp和TaskMgr的列对比
  6. python2和python3同时安装在Windows上
  7. spss常态检验_spss中正态性检验表怎么分析
  8. 雪莹软件将word转图片产生空白区域的问题解决方法
  9. HUD 3938 protal [ 离线并查集 ]
  10. Leetcode. Largest Rectangle in Histogram
  11. vue中双击事件选中文本、通过输入框实现双击输入文字
  12. a pubhub service
  13. 小白采坑 非法反射警告 An illegal reflective access operation has occurred错误
  14. 萧县机器人_萧县共享碾米机多少钱一台?
  15. 岁月的剪影【七月My way】
  16. signature=db6ed02c38e9be97bad334d194c3133d,来用百度密语吧!!!
  17. 18个接私活的平台:
  18. 计算机组成原理算术逻辑实验,《计算机组成原理》算术逻辑运算实验报告.doc...
  19. 【嵌入式linux】imx6ul中断学习笔记
  20. speedpdf在线转换怎么样?

热门文章

  1. 电脑关机同步服务器信息失败,电脑同步,更新时间失败,怎么处理?
  2. Java实现部标JTT1078实时音视频传输指令——视频流负载包(RTP)传输
  3. 无线路由器打印机服务器设置,路由器 打印机服务器设置方法
  4. pr如何跳到关键帧_PR制作短视频(二):30分钟制作一个短视频
  5. c语言200以内能被3和5整除的数,程式设计程式 求500以内能被3和5同时整除的所有数的和,c语言程式码写全一点,谢谢啦...
  6. 查看linux vnc用户名,VNC远程连接Linux
  7. linux 断开远程vnc,Linux停VNC远程控制的使用方法
  8. Linux之VNC远程桌面安装和使用
  9. 一篇文章让你详细了解新手第一次如何使用物联网卡,满满的干货!
  10. 位图的实战场景及源码分析