当前位置: 首页 > news >正文

刷题30-对称的二叉树

对称的二叉树
在这里插入图片描述
在这里插入图片描述
思路:用递归,首先明白递归中止的条件是什么
搬用别人的看法:

做递归思考三步:

1.递归的函数要干什么?
函数的作用是判断传入的两个树是否镜像。
输入:TreeNode left, TreeNode right
输出:是:true,不是:false
2.递归停止的条件是什么?
左节点和右节点都为空 -> 倒底了都长得一样 ->true
左节点为空的时候右节点不为空,或反之 -> 长得不一样-> false
左右节点值不相等 -> 长得不一样 -> false
3.从某层到下一层的关系是什么?
要想两棵树镜像,那么一棵树左边的左边要和二棵树右边的右边镜像,一棵树左边的右边要和二棵树右边的左边镜像
调用递归函数传入左左和右右
调用递归函数传入左右和右左
只有左左和右右镜像且左右和右左镜像的时候,我们才能说这两棵树是镜像的
调用递归函数,我们想知道它的左右孩子是否镜像,传入的值是root的左孩子和右孩子。这之前记得判个root==null。
代码如下:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public boolean isSymmetric(TreeNode root) {if(root==null) {return true;}return compare(root.left,root.right);}public boolean compare(TreeNode left,TreeNode right) {if(left==null&&right==null) {return true;}if(left!=null&&right==null) {return false;}if(left==null&&right!=null) {return false;}return (left.val==right.val)&&compare(left.right,right.left)&&compare(left.left,right.right);//左左镜像和右右镜像且左右镜像和右左镜像值也相等的时候才是镜像的}}

青蛙跳台阶问题–简单动态规划
在这里插入图片描述
思路:通过找规律可以发现,当n=0,输出为1;n=1,输出为1;n=2,输出为2;n=3,输出为3;n=4,输出为5,类似于斐波那契(Fibonacci)数列
在这里插入图片描述
有一个小知识点:
在这里插入图片描述

class Solution {public int numWays(int n) {int[] arr=new int[200];arr[0]=1;arr[1]=1;for(int i=2;i<=n;i++) {arr[i]=(arr[i-1]+arr[i-2])%1000000007;//找规律}return arr[n];		}
}
http://www.lryc.cn/news/45725.html

相关文章:

  • 精选简历模板
  • 蓝桥杯嵌入式第十三届客观题解析
  • 【Redis】线程问题
  • 【算法题】2498. 青蛙过河 II
  • 【新2023Q2押题JAVA】华为OD机试 - 整理扑克牌
  • 【hello C语言】文件操作
  • OBCP第八章 OB运维、监控与异常处理-数据库监控
  • 已经提了离职,还有一周就走,公司突然把我移出企业微信,没法考勤打卡, 还要继续上班吗?...
  • Win11启用IE方法
  • 有人靠ChatGPT 狂赚200W !有人到现在,连账号都没开通......
  • 基于GD32F470的mbedtls 3DES算法测试
  • 为什么一些人很瞧不起 Java?
  • DropMAE: Masked Autoencoders with Spatial-Attention Dropout for Tracking Tasks
  • 【shell 基础(11)循环之for】带列表:空格子串、换行子串、展开、命令替换、seq;不带列表:接受参数、类C
  • 虚拟环境中创建Django项目 详细完整
  • BCSP-玄子JAVA开发之JAVA数据库编程CH-08_JDBC
  • 一位程序员将一款开源工具变成了价值75亿美元的帝国
  • tmux | 终端操作软件,解决深度学习中终端相关问题
  • 信号 捕捉
  • sqlserver中判断是否存在的方法
  • 基于Kettle跑批的案例说明
  • 2023 最新版网络安全保姆级自学指南
  • Chapter9.3:线性系统稳定性分析及综合实例
  • EXCEL 在复杂查询时摒弃vlookup() sumif() 等公式,而使用数据透视表的初步学习
  • C 文件读写
  • Linux中实现程序开机自启——将程序配置为系统服务
  • 【洛谷刷题】蓝桥杯专题突破-广度优先搜索-bfs(13)
  • 【新2023Q2模拟题JAVA】华为OD机试 - 总最快检测效率 or 核酸检测效率
  • 基于主成分分析的混音方法
  • Code Two Exchange Crack