题解 | #对称的二叉树#
对称的二叉树
https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb
//采用双队列的方式 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; */ #include <cstddef> #include <queue> class Solution { public: bool isSymmetrical(TreeNode* pRoot) { if(pRoot==NULL) return true; queue<TreeNode*> p1; queue<TreeNode*> p2; p1.push(pRoot->left); p2.push(pRoot->right); while (!p1.empty()&&!p2.empty()) { TreeNode* node1=p1.front(); TreeNode* node2=p2.front(); p1.pop(); p2.pop(); if(node1==NULL&&node2==NULL) continue;; if(node1==NULL||node2==NULL||node1->val!=node2->val) return false; p1.push(node1->left); p1.push(node1->right); p2.push(node2->right); p2.push(node2->left); } return true; } };