Home LeetCode - 100. Same Tree
Post
Cancel

LeetCode - 100. Same Tree

100. Same Tree - easy

문제

Given two binary trees, write a function to check if they are the same or not.

Two binary trees are considered the same if they are structurally identical and the nodes have the same value.

제한사항

입출력 예

1
2
3
4
5
6
7
8
9
Example 1:

Input:     1         1
          / \       / \
         2   3     2   3

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

Output: true
1
2
3
4
5
6
7
8
9
Example 2:

Input:     1         1
          /           \
         2             2

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

Output: false
1
2
3
4
5
6
7
8
9
10
Example 3:

Input:     1         1
          / \       / \
         2   1     1   2

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

Output: false

풀이

  • Tree
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 * Definition for a binary tree node.
 * 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 == nullptr && q == nullptr) {
            return true;
        } else if(p != nullptr && q == nullptr) {
            return false;
        } else if(p == nullptr && q != nullptr) {
            return false;
        }
                
        return  p->val == q->val &&
                isSameTree(p->left, q->left) &&
                isSameTree(p->right, q->right);
    }
};
This post is licensed under CC BY 4.0 by the author.