题解 | #对称的二叉树#
对称的二叉树
https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
import java.util.*;
public class Solution {
boolean isSymmetrical(TreeNode pRoot) {
if((pRoot == null) || (pRoot.right == null && pRoot.left == null)) {
return true;
}
Queue<TreeNode> leftQueue = new LinkedList<>();
Queue<TreeNode> rightQueue = new LinkedList<>();
leftQueue.offer(pRoot.left);
rightQueue.offer(pRoot.right);
while (!leftQueue.isEmpty() && !rightQueue.isEmpty()) {
TreeNode left = leftQueue.poll();
TreeNode right = rightQueue.poll();
if(left == null && right==null) {
continue;
}
if(left ==null || right == null || left.val != right.val) {
return false;
}
leftQueue.offer(left.left);
leftQueue.offer(left.right);
rightQueue.offer(right.right);
rightQueue.offer(right.left);
}
return true;
}
}

查看12道真题和解析