100. 相同的树

Posted daid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了100. 相同的树相关的知识,希望对你有一定的参考价值。

题目描述:

给定两个二叉树,编写一个函数来检验它们是否相同。

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

 

示例:

输入:       1         1
          /        /          2   3     2   3

        [1,2,3],   [1,2,3]

输出: true

输入:      1          1
          /                    2             2

        [1,2],     [1,null,2]

输出: false


 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     struct TreeNode *left;
 6  *     struct TreeNode *right;
 7  * };
 8  */
 9 
10 bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
11 //同时递归,判断两个二叉树的值是否相同
12     if( p!=NULL && q!=NULL)
13     {
14         if( p->val != q->val)
15             return false;
16         else
17         {
18             return (isSameTree(p->left,q->left) && isSameTree(p->right,q->right));
19         }
20     }
21     else
22     {
23         if( p==NULL && q==NULL)
24             return true;
25         else
26             return false;
27     }
28 }

 

也可以写成这样:

 1 判断两个二叉树是否为空,若都为空,则返回真;若只有一个为空,则返回假;
 2 若二叉树不为空,则递归左右子树;
 3 bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
 4 
 5     if( p == NULL || q == NULL)
 6     {
 7         if( p == q )
 8             return true;
 9         else
10             return false;
11         
12     }
13     
14     return (p->val == q->val && isSameTree(p->left,q->left) && isSameTree(p->right,q->right));
15 }

 






以上是关于100. 相同的树的主要内容,如果未能解决你的问题,请参考以下文章

java刷题--100相同的树

leetcode-----100. 相同的树

leetcode100:相同的树

leetcode 每日一题 100.相同的树

Leetcode100. 相同的树(递归)

⭐算法入门⭐《二叉树》简单02 —— LeetCode 100. 相同的树