【LeetCode面试经典150题】100. 相同的树

一、题目

  • 100. 相同的树 - 力扣(LeetCode)

  • 给你两棵二叉树的根节点 pq ,编写一个函数来检验这两棵树是否相同。

  • 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

二、思路

  1. 二叉树的题,不是递归就是迭代,迭代要引入辅助存储方案,一般用递归就行;
  2. 首先的思路肯定是两棵树一起递归,而且是以相同方式递归,使其每次都能递归到相同位置的结点,此时判断当前两树该位置的值是否相等;
  3. 还是一样看最终状态,递归到最后是两个空结点(叶子节点的子结点),而两个空结点也可视为相等;
  4. 如果不相等就返回 false ,相等就返回 true ,分别对比两棵树的左右子树,当左右子树都判断完成且均返回 true 时方可认为相同,需要注意的是当A数有值B树为null时,即B树在这个位置无结点,显然两树不一样,详见解法一

三、解法

解法一

java 复制代码
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if (p == null && q == null) {
            return true;
        } else if (p == null || q == null) {
            return false;
        } else if (p.val != q.val) {
            return false;
        }
        return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
    }
}
相关推荐
Navigator_Z9 分钟前
LeetCode //C - 1033. Moving Stones Until Consecutive
c语言·算法·leetcode
WBluuue11 分钟前
数据结构与算法:莫队(一):普通莫队与带修莫队
c++·算法
风筝在晴天搁浅1 小时前
n个六面的骰子,扔一次之后和为k的概率是多少?
算法
千寻girling1 小时前
《 Git 详细教程 》
前端·后端·面试
MATLAB代码顾问2 小时前
Python实现蜂群算法优化TSP问题
开发语言·python·算法
代码飞天2 小时前
机器学习算法和函数整理——助力快速查阅
人工智能·算法·机器学习
jiushiapwojdap2 小时前
LU分解法求解线性方程组Matlab实现
数据结构·其他·算法·matlab
笨笨饿3 小时前
69_如何给自己手搓一个串口
linux·c语言·网络·单片机·嵌入式硬件·算法·个人开发
纽扣6673 小时前
【算法进阶之路】链表进阶:删除、合并、回文与排序全解析
数据结构·算法·链表
Cosolar3 小时前
一文吃透 LangChain&LangGraph:设计理念、框架结构与内部组件全拆解
人工智能·面试·架构