题目
给你一个二叉树的根节点 root
, 检查它是否轴对称。
提示:
- 树中节点数目在范围
[1, 1000]
内 -100 <= Node.val <= 100
**进阶:**你可以运用递归和迭代两种方法解决这个问题吗?
解法1:递归
如果一颗二叉树沿着根节点轴对称,那么只需沿着根节点判断左右孩子节点是否轴对称即可。注意在递归函数中,
代码如下:
class Solution {
public:
bool isSymmetric(TreeNode* root) {
return isSymmetric(root->left, root->right);
}
private:
bool isSymmetric(TreeNode* lhs, TreeNode* rhs) const
{
// 若左右节点同时为空,直接返回true
if ((lhs == nullptr) && (rhs == nullptr)) {
return true;
}
// 若左右节点均不为空,先判断左右节点值是否一致,然后递归调用自己即可
if ((lhs != nullptr) && (rhs != nullptr)) {
if (lhs->val != rhs->val) {