对称二叉树问题描述样例输入样例输出评测用例规模与约定解析参考程序难度等级问题描述给你一个二叉树的根节点 root 检查它是否轴对称。样例输入root[1,2,2,3,4,4,3]样例输出true评测用例规模与约定树中节点数目在范围 [1, 1000] 内-100 Node.val 100解析要判断一棵二叉树是否对称我们需要比较树的左右子树是否互为镜像。具体来说两个根节点具有相同的值每个树的右子树都与另一个树的左子树镜像对称我们可以使用递归或迭代的方法来解决这个问题。递归方法递归地比较左右子树左子树的左孩子与右子树的右孩子比较左子树的右孩子与右子树的左孩子比较迭代方法使用队列或栈来迭代地比较节点将根节点的左右子节点入队两次每次取出两个节点比较将一个节点的左子节点和另一个节点的右子节点入队将一个节点的右子节点和另一个节点的左子节点入队参考程序//递归classSolution{public:boolisSymmetric(TreeNode*root){if(!root)returntrue;returnisMirror(root-left,root-right);}boolisMirror(TreeNode*left,TreeNode*right){if(!left!right)returntrue;if(!left||!right)returnfalse;return(left-valright-val)isMirror(left-left,right-right)isMirror(left-right,right-left);}};//迭代classSolution{public:boolisSymmetric(TreeNode*root){if(rootnullptr)returntrue;queueTreeNode*q;q.push(root-left);q.push(root-right);while(!q.empty()){TreeNode*lq.front();q.pop();TreeNode*rq.front();q.pop();if(!l!r)continue;if(!l||!r)returnfalse;if(l-val!r-val)returnfalse;q.push(l-left);q.push(r-right);q.push(l-right);q.push(r-left);}returntrue;}};难度等级⭐️⭐️⭐️1~10星以个人刷题整理为目的如若侵权请联系删除~