本文共 1025 字,大约阅读时间需要 3 分钟。
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree [1,2,2,3,4,4,3] is symmetric:
1 / \ 2 2 / \ / \3 4 4 3
But the following [1,2,2,null,3,null,3] is not:
1 / \ 2 2 \ \ 3 3
8 ms 16.9 MB
class Solution { public: bool isSymmetric(TreeNode* root) { if(root == NULL) return true; queue<TreeNode*> q1,q2; TreeNode *left, *right; q1.push(root->left); q2.push(root->right); while(!q1.empty() && !q2.empty()) { left = q1.front();q1.pop(); right = q2.front();q2.pop(); if(left == NULL && right == NULL) continue; if(left == NULL || right == NULL) return false; if(left->val != right->val) return false; q1.push(left->left); q1.push(left->right); q2.push(right->right); q2.push(right->left); } return true; }};
使用queue,按顺序将节点入队:
转载地址:http://pfir.baihongyu.com/