LeetCode - Same Tree

Same Tree

2013.12.31 22:56

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

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

Solution:

  Check the root, the left subtree and the right subtree, recursively. That's the answer.

  Time complexity is O(min(m, n)), where m and n are the numbers of nodes in both trees.

  Space complexity is O(1).

Accepted code:

 1 /**

 2  * Definition for binary tree

 3  * struct TreeNode {

 4  *     int val;

 5  *     TreeNode *left;

 6  *     TreeNode *right;

 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}

 8  * };

 9  */

10 class Solution {

11 public:

12     bool isSameTree(TreeNode *p, TreeNode *q) {

13         // Note: The Solution object is instantiated only once and is reused by each test case.

14         if(p == nullptr || q == nullptr){

15             return p == q;

16         }else{

17             if(p->val == q->val){

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

19             }else{

20                 return false;

21             }

22         }

23     }

24 };

 

你可能感兴趣的:(LeetCode)