【二叉树】 Same-tree

简介: 【二叉树】 Same-tree

1. 题目描述

给出两个二叉树,请写出一个判断两个二叉树是否相等的函数。

判断两个二叉树相等的条件是:两个二叉树的结构相同,并且相同的节点上具有相同的值。

 

2. 题目分析

1. 这个题目最简单的方法就是用递归来做

       if(p == null && q == null){
           return true;
       }else if(p == null || q == null){
           return false;
       }else if(p.val != q.val){
           return false;
       }

2. 第二个做法,也就是如果我们没有想起来这个递归的话,直接用遍历一遍树,然后依次比较,这里如果是null的话,也要放进去

 

3. 题目代码

public class Solution {
    /**
     * 
     * @param p TreeNode类 
     * @param q TreeNode类 
     * @return bool布尔型
     */
    public boolean isSameTree (TreeNode p, TreeNode q) {
        // write code here
       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);
    }
}


相关文章
|
3月前
|
存储 C++
【C++】AVL树
AVL树是一种自平衡二叉搜索树,由Georgy Adelson-Velsky和Evgenii Landis提出。它通过确保任意节点的两子树高度差不超过1来维持平衡,支持高效插入、删除和查找操作,时间复杂度为O(log n)。AVL树通过四种旋转操作(左旋、右旋、左-右旋、右-左旋)来恢复树的平衡状态,适用于需要频繁进行数据操作的场景。
86 2
|
8月前
|
C++
【c++】avl树
【c++】avl树
62 0
|
8月前
|
存储 算法 编译器
|
9月前
AVL 树
AVL 树
72 2
|
9月前
|
C++ 容器
【C++】—— 详解AVL树
【C++】—— 详解AVL树
|
9月前
|
存储 算法 Python
赢者树(Losers Tree)
赢者树(Losers Tree)是一种经典的数据结构,常用于外部排序(External Sorting)算法中,将多个有序的子序列合并成一个有序的序列。赢者树本质上是一棵完全二叉树,每个节点存储着一个子序列的最小值。每次合并操作时,比较各个子序列的最小值,选出最小值并将其存入输出序列中,同时将该最小值所在的节点从赢者树中删除,并将其对应的子序列的下一个元素作为新的最小值插入到赢者树中进行调整,直到所有子序列的元素都被合并完成。
109 3
|
9月前
|
存储 测试技术 C++
C++【AVL树】
C++【AVL树】
90 0
|
C++
C++实现AVL树
C++实现AVL树
77 0
树(Tree)和二叉树(Binary Tree)——(代码篇)
树(Tree)和二叉树(Binary Tree)——(代码篇)
89 0