【二叉树】 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);
    }
}


相关文章
|
6月前
|
存储 算法 编译器
|
算法 C语言 C++
【树】你真的会二叉树了嘛? --二叉树LeetCode专题
先来一题简单的题目练练手,之前有提到过,二叉树的前序遍历就是通过根左右的遍历方式来进行的,所以这题总体思路也是一样.不过要说明的是,这里采用了c语言,所以输出时需要自己创建一个动态数组,每次将访问到的val存入动态数组当中即可.
61 0
|
7月前
|
存储 算法 Python
赢者树(Losers Tree)
赢者树(Losers Tree)是一种经典的数据结构,常用于外部排序(External Sorting)算法中,将多个有序的子序列合并成一个有序的序列。赢者树本质上是一棵完全二叉树,每个节点存储着一个子序列的最小值。每次合并操作时,比较各个子序列的最小值,选出最小值并将其存入输出序列中,同时将该最小值所在的节点从赢者树中删除,并将其对应的子序列的下一个元素作为新的最小值插入到赢者树中进行调整,直到所有子序列的元素都被合并完成。
81 3
树(Tree)和二叉树(Binary Tree)——(代码篇)
树(Tree)和二叉树(Binary Tree)——(代码篇)
78 0
|
存储 分布式数据库
树(Tree)和二叉树(Binary Tree)——(概念篇)
树(Tree)和二叉树(Binary Tree)——(概念篇)
79 0
|
算法 C语言 C++
【树】你真的会二叉树了嘛? --二叉树LeetCode专题Ⅳ
本章依然是二叉树的刷题 忘记的朋友们可以去看看我的二叉树专题
64 0
|
算法 Java Python
LeetCode 94:二叉树的中序遍历 Binary Tree Inorder Traversal
题目: 给定一个二叉树,返回它的中序 遍历。 Given a binary tree, return the inorder traversal of its nodes' values. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出:...
974 0
|
存储 机器学习/深度学习
Huffman Tree (哈夫曼树学习)
WPL 和哈夫曼树 哈夫曼树,又称最优二叉树,是一棵带权值路径长度(WPL,Weighted Path Length of Tree)最短的树,权值较大的节点离根更近。 首先介绍一下什么是 WPL,其定义是树的所有叶结点的带权路径长度之和,称为树的带权路径长度,公式为 WPL=W1L1+W2L2+W3*L3+...+Wn+Ln。
1223 0