题目描述
请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
参考代码
boolean isSymmetrical(TreeNode root){
if(root == null)return true;
LinkedList<TreeNode> queue = new LinkedList<>();
queue.addLast(root);
queue.addLast(root);
while(!queue.isEmpty()){
TreeNode node1 = queue.removeFirst();
TreeNode node2 = queue.removeFirst();
if(node1 == null && node2 == null)continue;
if(node1 == null || node2 == null)return false;
if(node1.val != node2.val)return false;
queue.addLast(node1.left);
queue.addLast(node2.right);
queue.addLast(node1.right);
queue.addLast(node2.left);
}
return true;
}