【LeetCode笔记】226. 翻转二叉树(Java、递归)

文章目录

  • 题目描述
  • 代码 & 思路
      • 更新版

题目描述

  • 感觉和合并二叉树类似,都是很好进行递归的问题
    在这里插入图片描述

代码 & 思路

  • 翻转当前结点的左、右结点
  • 对当前结点的左、右结点进行翻转函数
  • 【自底向上】
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {TreeNode left;public TreeNode invertTree(TreeNode root) {if(root == null){return root;}invertTree(root.left);invertTree(root.right);left = root.left;root.left = root.right;root.right = left;return root;}
}

更新版

  • 自顶向下,感觉这个比较好理解
class Solution {public TreeNode invertTree(TreeNode root) {if(root == null) {return null;}TreeNode temp = root.left;root.left = root.right;root.right = temp;invertTree(root.left);invertTree(root.right);return root;}
}
  • 面试前再刷一次,属实是过于清晰了
class Solution {public TreeNode mirrorTree(TreeNode root) {if(root == null) return null;TreeNode temp = root.left;root.left = root.right;root.right = temp;mirrorTree(root.left);mirrorTree(root.right);return root;}
}

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

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

相关文章

virtualbox linux 分辨率,终于搞定了VirtualBox的ubuntu分辨率问题

曾经装了ubuntu,但是觉得和windows切换太麻烦了,要重启机器,导致的结果是linux装上了总是不用。这次决定使用虚拟机,因为我用ubuntu就是ssh一下实验室的服务器,所以对性能没什么要求。在所里的时候看到祝师兄总用vmwar…

【LeetCode笔记】160. 相交链表(Java、链表)

文章目录题目描述思路 & 代码题目描述 感谢这道题,让我更加了解到Dalao们思路的nb主要是满足空间复杂度O(1)。否则用哈希表不难实现。 思路 & 代码 有相交结点的情况下,可以找到这么一个等式: // 假设链表长度为m,n&…

【LeetCode笔记】152. 乘积最大子数组(Java、动态规划)

文章目录题目描述思路 & 代码更新版题目描述 考虑正数、负数和0的情况 思路 & 代码 既然是使用的动态规划,那么有以下几点: 维护什么:维护iMax和iMin,分别代表包含当前值的子数组的最大乘积 & 最小乘积什么时候转…

Linux安装winetim简单教程,[转载]wine安装最新版TIM

[版权声明:本文为转载,并按照个人实际操作步骤替换为了TIM安装,原文为QQ安装过程。]1. 安装wine本次教程只需要安装最新版本的wine,并不需要winetricks、wine-mono、wine-gecko等其他插件,目前经实际测试发现只运行Win…

【LeetCode笔记】283. 移动零(Java)

文章目录题目描述思路 & 代码更新版题目描述 原地操作 & 减少操作次数:不能直接只拷非零数,也不要每次都一个个推动整个数组 思路 & 代码 维护一个noZeroNums,代表当前循环遇到的非0数的数量第一趟先不管0的数量,…

【LeetCode笔记】448. 找到所有不存在的数(Java、原地)

文章目录题目描述思路 & 代码题目描述 说实话,第一眼看题让我想到那道“往1 ~ 1024中加入一个数,用中学生也会的方法找到这个数"(答案是 (1024! x) - 1024! )如果没有时空复杂度限制的话,用哈希…

【LeetCode笔记】146. LRU缓存机制(Java、双向链表、哈希表)

文章目录题目描述思路 & 代码LinkedHashMap 的写法题目描述 大名鼎鼎的超高频面试题太感动,在这道题上花了太多时间了,今天终于补上博客了TvT 思路 & 代码 结构用的是:双向链表 哈希表。可以满足O(1)时间复杂度put()&#xff1a…

simulink和c语言开发,Simulink之嵌入式C代码生成-应用层和底层的接口

今天给大家带来的仍然是基于MBD的嵌入式代码生成,主要把应用层和底层接口之间的代码生成配置说一下。本周末会更新功能安全相关,欢迎大家留言交流!作为一个总是用C写代码的人来说,第一次接触到基于MBD的代码生成的时候就迫不及待的…

【LeetCode笔记】215. 数组中的第K个最大元素(Java、快排、堆排、并发快排)

文章目录题目描述思路 & 代码快排基于 Fork / Join 的并发快排针对 topK 的快排优化堆排基本堆排结合题目的堆排二刷题目描述 大名鼎鼎的TOP K,主要考察排序快排 & 堆排 思路 & 代码 快排 没啥好说的,就是快排结束后,返回倒…

c语言中怎么画直线,ps如何画直线 【操作流程】

大家都知道电脑使用起来非常方便,但遇见ps如何画直线的时候就非常头疼了,如果你是第一次遇到ps如何画直线,怎么样才能快速解决ps如何画直线带来的烦恼呢?小编为大家收集了很多关于ps如何画直线问题的解决方法,下面请看…

【LeetCode笔记】470. 用Rand7()实现Rand10()(Java、概率)

文章目录题目描述代码 & 思路更新版三刷 - 极简版题目描述 貌似是比较高频的面试题目啊,有学概率论内味了(讲道理我概率论学得不好) 代码 & 思路 先用Rand7实现RandN(N > 10),类似进制&…

【纠错记录】本地FTP服务器无法被外部连接

问题描述 在本地主机开了个FTP服务器,本机可以正常访问,但是外部主机不能访问FTP服务器 解决方法 ① 一开始以为是服务端Xlight FTP的问题,检查权限并没有发现问题 ② 接着考虑到有没有可能是客户端Flash FXP的问题,于是尝试直…

双线性插值算法c 语言实现,双线性插值 - CristianoC的个人空间 - OSCHINA - 中文开源技术交流社区...

前言最近在学习LBP,其中的圆形LBP特征由于计算的值可能不是整数,即计算出来的点不在图像上,我们要使用计算出来的点的插值点。目的的插值方法有很多,Opencv使用的是双线性插值,今天就来介绍一下双线性插值。概述先给大…

【LeetCode笔记】543. 二叉树的直径(Java、dfs、二叉树)

文章目录题目描述思路 & 代码题目描述 思路 & 代码 由这个结论考虑:直径中一定有一个父结点,那么当前直径长度就是: 当前父结点的左子树深度 右子树深度那么,只要遍历所有结点的最长直径值即可流程:在找每一…

【LeetCode笔记】461. 汉明距离(Java、位运算)

文章目录题目描述思路 & 代码更新版题目描述 既然是二进制,那就十有八九用位运算符既然是不同,那肯定用异或 思路 & 代码 两种方法,总体来说都是处理异或值方法一,转换成字符串,再遍历(会慢一点…

android 自定义桌面图标大小设置,手机桌面图标尺寸可以改?OriginOS重新定义个性化...

原标题:手机桌面图标尺寸可以改?OriginOS重新定义个性化随着安卓定制化系统同质化情况的加重,越来越多的终端厂商开始探索一场新的变革。深耕手机领域的vivo,自然也察觉到了这一点。经过不断地努力和尝试之后,vivo终于…

【LeetCode笔记】347. 前K个高频元素(Java、优先队列、小顶堆、HashMap)

文章目录题目描述思路 & 代码更新版:引入 stream 流 Lambda题目描述 时间复杂度小于O(n*logn),否则直接sort,再遍历就很轻松。很有学习价值的题目,第一次使用了优先队列PriorityQueue。 思路 & 代码 首先遍历数组&am…

【LeetCode笔记】240. 搜索二维矩阵II 剑指 Offer 04 二维数组中的查找(Java、指针)

文章目录题目描述思路 & 代码更新版题目描述 两道题一样的有序 搜索,明摆着二分查找但是比较懒…选取了题解里的指针做法 思路 & 代码 时间复杂度O(m n),原理 & 思路 & 证明可见代码注释。代码很简单,主要是弄明白正确…

【LeetCode笔记】238. 除自身以外数组的乘积(Java、思路题)

文章目录题目描述思路 & 代码更新版题目描述 首先暴力二层循环肯定可以,然后先累乘整个数组,再用除法肯定也行。但是很遗憾,两种做法都不满足题目说明。 思路 & 代码 O(n) & O(1)考虑到这个核心:ans[i] 就是当前元…

【LeetCode笔记】236. 二叉树的最近公共祖先(Java、二叉树、DFS)

文章目录题目描述思路 & 代码题目描述 ac了,但是看了题解发现有更好的做法 思路 & 代码 对于一个结点rootNode,p、q有这么几种情况: p、q分别在其左右子树中,那么好说,rootNode就是答案p、q都在其右子树中…