# missjing/leetcode

Switch branches/tags
Nothing to show
Fetching contributors…
Cannot retrieve contributors at this time
49 lines (40 sloc) 1.03 KB
 problem: Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For example, this binary tree is symmetric: 1 / \ 2 2 / \ / \ 3 4 4 3 But the following is not: 1 / \ 2 2 \ \ 3 3 Note: Bonus points if you could solve it both recursively and iteratively. confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ. ----------------------------------------------------------------------------------- solution: //递归解决 struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; bool isSymmetric_aux(TreeNode *node1, TreeNode *node2) { if(node1== NULL && node2 == NULL) return true; if(node1 == NULL || node2 == NULL) return false; return node1->val == node2->val && isSymmetric_aux(node1->left, node2->right) && isSymmetric_aux(node1->right, node2->left); } bool isSymmetric(TreeNode *root) { if(root == NULL) return true; return isSymmetric_aux(root->left, root->right); }