题解 | #对称的二叉树#

对称的二叉树

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;
    }
}

全部评论

相关推荐

Z_eus:别打招呼直接发你的优势
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务