LeetCode: Same Tree
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.
地址:https://oj.leetcode.com/problems/same-tree/
算法:递归解决,很简单。代码:
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 if(!p && !q) return true;
14 if(!p && q || p && !q) return false;
15 if(p && q && p->val != q->val) return false;
16 bool left = isSameTree(p->left, q->left);
17 bool right = isSameTree(p->right,q->right);
18 return left && right;
19 }
20 };
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 if(!p && !q) return true;
14 if(!p && q || p && !q) return false;
15 if(p && q && p->val != q->val) return false;
16 bool left = isSameTree(p->left, q->left);
17 bool right = isSameTree(p->right,q->right);
18 return left && right;
19 }
20 };