苏州建站公司 诚找苏州聚尚网络,杭州网站建站模板,百度一下官网首页百度一下,网站开发规格递归
思路#xff1a; 克隆这棵树#xff0c;递归比较左右子树互为镜像#xff1b;终止条件为#xff1a; 都为nullptr#xff0c;则返回 true#xff1b;有一个为 nullptr#xff0c;则返回 false#xff1b;#xff08;形状不一致#xff09;形状一致情况下#…递归
思路 克隆这棵树递归比较左右子树互为镜像终止条件为 都为nullptr则返回 true有一个为 nullptr则返回 false形状不一致形状一致情况下值要相等、原左子树与镜像右子树、原右子树与镜像左子树也应该互为镜像递归
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool isSymmetric(TreeNode* root) {return check(root, root);}private:bool check(TreeNode* o, TreeNode* m) {if ((o nullptr) (m nullptr)) {return true;} else if ((o nullptr) || (m nullptr)) {return false;}return (o-val m-val) check(o-left, m-right) check(o-right, m-left);}
};