LeetCode 101. Symmetric Tree
Description:
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
Example 1:
For example, this binary tree [1,2,2,3,4,4,3] is symmetric:
1
/ \
2 2
/ \ / \
3 4 4 3
Example 2:
But the following [1,2,2,null,3,null,3] is not:
1
/ \
2 2
\ \
3 3
分析:
其实这道题可以参考LeetCode 100. Same Tree类似的解法,首先我们判断树的根节点,然后把左右子树看成和Same Tree一样求两棵树是否一样,只不过此时p->left==r->left换成p->left==r->right,p->right==r->right换成p->right==r->left。
这道题最麻烦的还是写main函数测试样例时构造二叉树的问题,又提醒我要复习一下数据结构的知识,最终我找了两个构造二叉树的方法,两个版本的代码在底下都可以看到;
另外我还把LeetCode.com上面自带的测试main函数放在这个博客里,人家的代码写得就是吊,用到了很多标准库函数,把样例作为字符串输入,然后处理字符串构造二叉树。666
代码如下:
one version:
1 |
|
another version:
1 |
|
one more version from LeetCode.com:
1 |
|