啊真不愧是easy ?!
但頭還是昏昏的, and 跟or 還是會寫錯呢~~~(攤手)
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool check(struct TreeNode* p, struct TreeNode* q)
{
if (p == NULL && q == NULL)
return true;
else if ((p==NULL && q != NULL)|| (p != NULL && q == NULL))
return false;
if ((p->val) != (q->val))
return false;
return ( check(p->left , q-> left) && check(p->right , q-> right));
}
bool isSameTree(struct TreeNode* p, struct TreeNode* q){
return check(p,q);
}
覺得別人真的寫的很精簡XD 偷貼一下.
(然後就證明我真的不是鬼才啊屋屋屋屋屋)
bool isSameTree(struct TreeNode* p, struct TreeNode* q){
if(p && q){
return p->val == q->val && isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
}else if(p || q){
return false;
}
else{
return true;
}
}
然後發現自己寫的很贅啊XD 不就用一個function 對自己recursive 就好了?!
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool isSameTree(struct TreeNode* p, struct TreeNode* q){
if (p == NULL && q == NULL)
return true;
else if ((p==NULL && q != NULL)|| (p != NULL && q == NULL))
return false;
if ((p->val) != (q->val))
return false;
return ( isSameTree(p->left , q-> left) && isSameTree(p->right , q-> right));
}
沒有留言:
張貼留言