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. 相同的树的主要内容,如果未能解决你的问题,请参考以下文章