题解 | #二叉树中和为某一值的路径(一)#

对称的二叉树

http://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb

注意进行判断, 及入队的元素
//这里要记住入队的顺序,他会每两个两个的出队。 //左子节点的左子节点和右子节点的右子节点同时 //入队,因为他俩会同时比较。 //左子节点的右子节点和右子节点的左子节点同时入队, //因为他俩会同时比较
会递归的麻烦指教

package com.yzcOfffer.JZ28;

import java.util.LinkedList;
import java.util.Queue;

/**
 * @author YZC
 * @date 2021/12/6 21:14
 */

class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}

public class Solution {
    boolean isSymmetrical(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        if (root == null) {
            return true;
        }
        queue.add(root.left);
        queue.add(root.right);

        while (!queue.isEmpty()) {
            TreeNode left = queue.poll();
            TreeNode right = queue.poll();
            if (left == null && right == null) {
                continue;
            }
            if (left == null || right == null || left.val != right.val) {
                return false;
            }
            //这里要记住入队的顺序,他会每两个两个的出队。
            //左子节点的左子节点和右子节点的右子节点同时
            //入队,因为他俩会同时比较。
            //左子节点的右子节点和右子节点的左子节点同时入队,
            //因为他俩会同时比较

            queue.add(left.left);
            queue.add(right.right);
            queue.add(left.right);
            queue.add(right.left);
        }
        return true;
    }


}


全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务