码迷,mamicode.com
首页 > 其他好文 > 详细

100. 相同的树

时间:2018-11-02 20:22:37      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:div   efi   节点   题目   iss   for   nbsp   null   class   

题目描述:

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

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

 

示例:

输入:       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. 相同的树

标签:div   efi   节点   题目   iss   for   nbsp   null   class   

原文地址:https://www.cnblogs.com/daid/p/9898026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!