地址 https://www.acwing.com/problem/content/description/38/node
题目描述
请实现一个函数,用来判断一棵二叉树是否是对称的。算法
若是一棵二叉树和它的镜像同样,那么它是对称的。函数
样例spa
以下图所示二叉树[1,2,2,3,4,4,3,null,null,null,null,null,null,null,null]为对称二叉树: 1 / \ 2 2 / \ / \ 3 4 4 3 以下图所示二叉树[1,2,2,null,4,4,3,null,null,null,null,null,null]不是对称二叉树: 1 / \ 2 2 \ / \ 4 4 3
算法1
一个是树的递归遍历 一个是比较的边界条件要注意code
C++ 代码blog
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: bool issame(TreeNode* right,TreeNode* left) { if(right == NULL && left == NULL ) return true; else if(right == NULL ) return false; else if(left == NULL) return false; if(right->val != left->val) return false; return issame(right->right,left->left) && issame(right->left,left->right); } bool isSymmetric(TreeNode* root) { if(root == NULL) return true; return issame(root->right,root->left); } }; 做者:defddr 连接:https://www.acwing.com/solution/acwing/content/3620/ 来源:AcWing 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。
AC了 下一题递归