LeetCode:same_tree 문제풀이

1288 단어 LeetCode
1. 제목:
두 개의 두 갈래 나무를 정하고 함수를 작성해서 그것들이 같거나 빈 나무인지 확인합니다.만약 두 갈래 나무가 서로 같다고 여겨진다면, 그것들은 구조적으로 같고, 임의의 노드가 같은 값을 가지고 있다.
분석
아주 간단한 제목인데, 우리가 이 나무를 두루 훑어보기만 하면 되지 않겠는가. 차례차례 해결해야 할 주의할 것은 공결점에 대한 판단이므로 소홀히 하기 쉽다
 
/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    bool isSameTree(TreeNode *p, TreeNode *q) {
        if(p==NULL&&q==NULL)
        	return true;
		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);
    }
};


 :
/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    bool isSameTree(TreeNode *p, TreeNode *q) {
        if(!p&&!q)
        	return true;
		if(!p&&q||p&&!q||p->val!=q->val) 
			return false;
        return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
    }
};

좋은 웹페이지 즐겨찾기