四步法:
(1)如果两个子树都为空指针,则它们相等或对称
(2)如果两个子树只有一个为空指针,则它们不相等或不对称
(3)如果两个子树根节点的值不相等,则它们不相等或不对称
(4)根据相等或对称要求,进行递归处理。
//四步法判断一颗二叉树是否对称 //主函数 bool isSymmetric(TreeNode* root) { return root ? isSymmetric(root->left, root->right) : true; } //辅函数 bool isSymmetric(TreeNode* left, TreeNode* right) { if (!left && !right) { return true; } if (!left || !right) { return false; } if (left->val != right->val) { return false; } return isSymmetric(left->left, right->right) && isSymmetric(left->right, right->left); }
标签:right,return,C++,二叉树,对称,isSymmetric,root,left From: https://www.cnblogs.com/smartlearn/p/18056184