100. Same Tree

Andreea
2 min readMay 13, 2021

Given the roots of two binary trees p and q, 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.

Example 1:

Input: p = [1,2,3], q = [1,2,3]
Output: true

Example 2:

Input: p = [1,2], q = [1,null,2]
Output: false

Example 3:

Input: p = [1,2,1], q = [1,1,2]
Output: false
class Solution {
public:
bool isSameTree(TreeNode* p, TreeNode* q) {

if((p == NULL && q != NULL) || (p != NULL && q == NULL)){
return false;
}

if(p == NULL && q == NULL){
return true;
}

if(p->val != q->val){
return false;
}

return isSameTree(p->left, q->left)&&isSameTree(p->right, q->right);
}
};

tips:

終止條件:

  1. 一邊空一邊非空->return false
  2. 兩邊為空->return true
  3. 兩邊val相異->return false

return 左右兩子樹遞迴且都為true

Runtime: 0 ms, faster than 100.00% of C++ online submissions for Same Tree.

Memory Usage: 9.8 MB, less than 92.36% of C++ online submissions for Same Tree.

--

--