[剑指offer]面试题第[28]题[Leedcode][JAVA][第101题][对称二叉树][队列][递归]

【问题描述】[简单]

给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ \2   2/ \ / \
3  4 4  3

【解答思路】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. 递归

时间复杂度:O(N) 空间复杂度:O(1)

public boolean isSymmetric(TreeNode root) {if (root == null) return true;return isMirror(root.left, root.right);
}
public boolean isMirror(TreeNode node1, TreeNode node2){if (node1 == null && node2 == null) return true;if (node1 == null || node2 == null) return false;if (node1.val != node2.val) return false;return isMirror(node1.left, node2.right) && isMirror(node1.right, node2.left);
}
2. 队列

迭代解法,层次遍历,调整入队顺序
时间复杂度:O(N) 空间复杂度:O(N)

public boolean isSymmetric(TreeNode root) {if (root == null || (root.left == null && root.right == null)) return true;Queue<TreeNode> queue = new LinkedList<>();queue.add(root.left);queue.add(root.right);while (!queue.isEmpty()){TreeNode left = queue.poll();TreeNode right = queue.poll();if (left == null && right == null) continue;if (left == null || right == null) return false;if (left.val != right.val) return false;queue.add(left.left);queue.add(right.right);queue.add(left.right);queue.add(right.left);}return true;
}

【总结】

1. 二叉树 递归思路最佳
2.整体思路把控 不要太局部

转载链接:https://leetcode-cn.com/problems/symmetric-tree/solution/java-di-gui-yu-die-dai-by-kelly2018/

参考链接:https://leetcode-cn.com/problems/symmetric-tree/solution/hua-jie-suan-fa-101-dui-cheng-er-cha-shu-by-guanpe/
参考链接:https://leetcode-cn.com/problems/symmetric-tree/solution/di-gui-die-dai-bi-xu-miao-dong-by-sweetiee/

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

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

相关文章

html:(19):单选框,复选框,下拉列表框

使用单选框、复选框&#xff0c;让用户选择 在使用表单设计调查表时&#xff0c;为了减少用户的操作&#xff0c;使用选择框是一个好主意&#xff0c;html中有两种选择框&#xff0c;即单选框和复选框&#xff0c;两者的区别是单选框中的选项用户只能选择一项&#xff0c;而复…

[Leedcode][JAVA][第84题][柱状图中最大的矩形][暴力][单调栈]

【问题描述】[困难] 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。以上是柱状图的示例&#xff0c;其中每个柱子的宽度为 1&#xff0c;给定的高度为 […

html:(20):使用下拉框进行多选和使用提交按钮提交

使用下拉列表框进行多选 下拉列表也可以进行多选操作&#xff0c;在<select>标签中设置multiple"multiple"属性&#xff0c;就可以实现多选功能&#xff0c;在 windows 操作系统下&#xff0c;进行多选时按下Ctrl键同时进行单击&#xff08;在 Mac下使用 Comm…

html:(21):重置按钮和label标签

使用重置按钮&#xff0c;重置表单信息 当用户需要重置表单信息到初始时的状态时&#xff0c;比如用户输入“用户名”后&#xff0c;发现书写有误&#xff0c;可以使用重置按钮使输入框恢复到初始状态。只需要把type设置为"reset"就可以。 语法&#xff1a; <i…

[Leedcode][JAVA][第1431题][拥有糖果最多的孩子][暴力][六一儿童节]

【问题描述】[中等] 给你一个数组 candies 和一个整数 extraCandies &#xff0c;其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子&#xff0c;检查是否存在一种方案&#xff0c;将额外的 extraCandies 个糖果分配给孩子们之后&#xff0c;此孩子有 最多 的糖果…

生产系统服务器是啥意思,生产系统服务器主机名怎么看

生产系统服务器主机名怎么看 内容精选换一换部署组复制的最常见方法是使用多个服务器实例&#xff0c;以提供高可用性。也可以在本地部署组复制&#xff0c;例如出于测试目的。注意:组复制通常部署在多个主机上&#xff0c;因为这样可以确保提供高可用性。本地部署不适用于生产…

html:(22):认识css样式和css的优势

认识CSS样式 CSS全称为“层叠样式表 (Cascading Style Sheets)”&#xff0c;它主要是用于定义HTML内容在浏览器内的显示样式&#xff0c;如文字大小、颜色、字体加粗等。 如下列代码&#xff1a; p{font-size:12px;color:red;font-weight:bold; } 使用CSS样式的一个好处是…

hana-banach定理

1. x1不是X除开G以外所有的空间 2.如果极大元不是全空间的话&#xff0c;根据前面的讨论&#xff0c;还可以延拓&#xff0c;这就和极大矛盾了转载于:https://www.cnblogs.com/china520/p/10388862.html

boa服务器实现温湿度显示,SMT车间温湿度分布式远程监控系统的设计

随着SMT生产工艺技术的提高&#xff0c;生产车间对环境的温湿度提出了温度253℃。湿度45&#xff05;RH&#xff5e;65&#xff05;RH的要求。为了达到这样的温湿度要求&#xff0c;就不仅需要提高温湿度传感器的精度&#xff0c;而且要求现场的管理人员能够实时的查看现场的环…

[剑指offer][JAVA]面试题第[09]题[用两个栈实现队列][LinkedList]

【问题描述】[简单] 用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead 操作返回 -1 )示例 1&#xff1a;输入&am…

html:(23):css代码语法和css注释语法

CSS代码语法 css 样式由选择符和声明组成&#xff0c;而声明又由属性和值组成&#xff0c;如下图所示&#xff1a; 选择符&#xff1a;又称选择器&#xff0c;指明网页中要应用样式规则的元素&#xff0c;如本例中是网页中所有的段&#xff08;p&#xff09;的文字将变成蓝色&…

FFmpeg开发实战(三):FFmpeg 打印音视频Meta信息

在之前使用FFmpeg命令行的时候&#xff0c;我们经常看到FFmpeg命令行在输出音视频文件的会打印一下文件的Meta信息&#xff0c;类似如图&#xff1a; 那么我们如何通过代码的方式输出这些Meta信息呢&#xff1f; FFmpeg提供了一个API专门用来打印多媒体文件的格式 —— av_dump…

html:(24):内联式css和嵌入式css

内联式css样式&#xff0c;直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢&#xff1f;从CSS 样式代码插入的形式来看基本可以分为以下3种&#xff1a;内联式、嵌入式和外部式三种。这一小节先来讲解内联式。 内联式css样式表就是把css代码直接写在现有的HTML标签中&am…

[剑指offer][JAVA]面试题第[10-1]题[斐波那契数列][动态规划][记忆化递归]

【问题描述】[中等] 写一个函数&#xff0c;输入 n &#xff0c;求斐波那契&#xff08;Fibonacci&#xff09;数列的第 n 项。斐波那契数列的定义如下&#xff1a;F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始&#xff0c;之后的…

html:(25):选择器定义和标签选择器

什么是选择器&#xff1f; 每一条css样式声明&#xff08;定义&#xff09;由两部分组成&#xff0c;形式如下&#xff1a; 选择器{样式; } 在{}之前的部分就是“选择器”&#xff0c;“选择器”指明了{}中的“样式”的作用对象&#xff0c;也就是“样式”作用于网页中的哪些…

[剑指offer][JAVA]面试题第[64]题[求1+2+…+n][逻辑运算符]

【问题描述】[中等] 求 12...n &#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&#xff09;。输入: n 3 输出: 6【解答思路】 1. 递归&#xff08;不合符题意&#xff09; 时间复杂度&#xff1a;O(N^2) 空间…

html:(26):类选择器和id选择器

类选择器 类选择器在css样式编码中是最常用到的&#xff0c;如右侧代码编辑器中的代码:可以实现为“胆小如鼠”、“勇气”字体设置为红色。 语法&#xff1a; .类选器名称{css样式代码;} 注意&#xff1a; 1、英文圆点开头 2、其中类选器名称可以任意起名&#xff08;但不…

[剑指offer][JAVA]面试题第[10-2]题[青蛙跳台阶问题][动态规划][递归]

【问题描述】[中等] 一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e97&#xff08;1000000007&#xff09;&#xff0c;如计算初始结果为&#xff1a;1000000008&#xff0c;请返回 1。【解答思路…

[剑指offer][JAVA]面试题第[11]题[旋转数组的最小数字][二分法][分治]

【问题描述】[简单] 把一个数组最开始的若干个元素搬到数组的末尾&#xff0c;我们称之为数组的旋转。输入一个递增排序的数组的一个旋转&#xff0c;输出旋转数组的最小元素。例如&#xff0c;数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转&#xff0c;该数组的最小值为1。 示…

html:(27):类和ID选择器的区别和子选择器

类和ID选择器的区别 学习了类选择器和ID选择器&#xff0c;我们会发现他们之间有很多的相似处&#xff0c;是不是两者可以通用呢&#xff1f;我们不要着急先来总结一下他们的相同点和不同点&#xff1a; 相同点&#xff1a;可以应用于任何元素不同点&#xff1a; 1、ID选择器…