Rayman的绝顶之路——Leetcode每日一题打卡20
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相关推荐
- LeetCode每日一题打卡组队监督!刷题群!
近 2000 人已经加入共同刷题啦! 群友每天都会在群里给大家讲解算法题 每周日「负雪明烛」组织直播讲题 我相信来看我博客的大部分人都是通过LeetCode刷题过来的.最近发现LeetCode中文网站 ...
- 关于LeetCode每日一题打卡失败的感悟
背景 今年5月,报名参加了三叶姐的"五月打卡活动",押金29.9元,要求每天在力扣上每日一题打卡,完成则押金全退,完不成则押金不退. 事件 2022.5.10,LeetCode上的 ...
- Leetcode每日一题(914. 卡牌分组)
914. 卡牌分组 题目: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数 ...
- LeetCode 每日一题打卡:334.递增的三元子序列
题目 334.递增的三元子序列 题目大意 给你一个整数数组numsnumsnums ,判断这个数组中是否存在长度为333的递增子序列. 如果存在这样的三元组下标(i,j,k)(i, j, k)(i,j ...
- 【Leetcode 每日一题】514. 自由之路(BFS+优先队列)
Leetcode 每日一题 题目链接:514. 自由之路 难度: 困难 解题思路: 这道题乍一看,可以选择用动态规划或者BFS来求解.本文使用BFS来进行解答.注意到题中有一个最小的到路径.所以我们可 ...
- leetcode每日刷题计划-简单篇day8
leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...
- Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)
思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...
- 【LeetCode每日一题】1723. 完成所有工作的最短时间
[LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...
- leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用
leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...
- LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色
LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...
最新文章
- BZOJ4555[HEOI2016/TJOI2016]求和
- 我的cookie读写
- oppo刷机工具_黔隆科技刷机教程OPPOR9TM忘记密码免刷机保资料解屏幕锁教程
- dmv io读写高的sql_适用于DBA的前8大新(或增强)SQL Server 2017 DMV和DMF
- ProcExp和TaskMgr的列对比
- python2和python3同时安装在Windows上
- spss常态检验_spss中正态性检验表怎么分析
- 雪莹软件将word转图片产生空白区域的问题解决方法
- HUD 3938 protal [ 离线并查集 ]
- Leetcode. Largest Rectangle in Histogram
- vue中双击事件选中文本、通过输入框实现双击输入文字
- a pubhub service
- 小白采坑 非法反射警告 An illegal reflective access operation has occurred错误
- 萧县机器人_萧县共享碾米机多少钱一台?
- 岁月的剪影【七月My way】
- signature=db6ed02c38e9be97bad334d194c3133d,来用百度密语吧!!!
- 18个接私活的平台:
- 计算机组成原理算术逻辑实验,《计算机组成原理》算术逻辑运算实验报告.doc...
- 【嵌入式linux】imx6ul中断学习笔记
- speedpdf在线转换怎么样?
热门文章
- 电脑关机同步服务器信息失败,电脑同步,更新时间失败,怎么处理?
- Java实现部标JTT1078实时音视频传输指令——视频流负载包(RTP)传输
- 无线路由器打印机服务器设置,路由器 打印机服务器设置方法
- pr如何跳到关键帧_PR制作短视频(二):30分钟制作一个短视频
- c语言200以内能被3和5整除的数,程式设计程式 求500以内能被3和5同时整除的所有数的和,c语言程式码写全一点,谢谢啦...
- 查看linux vnc用户名,VNC远程连接Linux
- linux 断开远程vnc,Linux停VNC远程控制的使用方法
- Linux之VNC远程桌面安装和使用
- 一篇文章让你详细了解新手第一次如何使用物联网卡,满满的干货!
- 位图的实战场景及源码分析