101. symmetric tree

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

For example, this binary tree [1,2,2,3,4,4,3] is symmetric:

1
2
3
4
5
     1
/
2 2
/ /
3 4 4 3

But the following [1,2,2,null,3,null,3] is not:

1
2
3
4
5
  1
/
2 2

3 3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
bool (TreeNode *node1,TreeNode *node2) {
if (node1 == NULL && node2 == NULL)
return true;
else if (node1 == NULL || node2 == NULL)
return false;
else if (node1->val != node2->val)
return false;

return dfs(node1->left,node2->right) && dfs(node1->right,node2->left);
}

bool isSymmetric(TreeNode* root) {
if (root == NULL)
return true;
return dfs(root->left,root->right);
}
};