A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kangnam 中级黑马   /  2016-9-13 23:09  /  334 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    1   / \  2   2 / \ / \3  4 4  3public boolean isSymmetric(TreeNode root) {    Queue<TreeNode> q = new LinkedList<>();    q.add(root);    q.add(root);    while (!q.isEmpty()) {        TreeNode t1 = q.poll();        TreeNode t2 = q.poll();        if (t1 == null && t2 == null) continue;        if (t1 == null || t2 == null) return false;        if (t1.val != t2.val) return false;        q.add(t1.left);        q.add(t2.right);        q.add(t1.right);        q.add(t2.left);    }    return true;}public boolean isSymmetric(TreeNode root) {    return isMirror(root, root);}public boolean isMirror(TreeNode t1, TreeNode t2) {    if (t1 == null && t2 == null) return true;    if (t1 == null || t2 == null) return false;    return (t1.val == t2.val)        && isMirror(t1.right, t2.left)        && isMirror(t1.left, t2.right);}

1 个回复

倒序浏览
方法一:
public boolean isSymmetric(TreeNode root) {
    return isMirror(root, root);
}

public boolean isMirror(TreeNode t1, TreeNode t2) {
    if (t1 == null && t2 == null) return true;
    if (t1 == null || t2 == null) return false;
    return (t1.val == t2.val)
        && isMirror(t1.right, t2.left)
        && isMirror(t1.left, t2.right);
}

方法二:
public boolean isSymmetric(TreeNode root) {
    Queue<TreeNode> q = new LinkedList<>();
    q.add(root);
    q.add(root);
    while (!q.isEmpty()) {
        TreeNode t1 = q.poll();
        TreeNode t2 = q.poll();
        if (t1 == null && t2 == null) continue;
        if (t1 == null || t2 == null) return false;
        if (t1.val != t2.val) return false;
        q.add(t1.left);
        q.add(t2.right);
        q.add(t1.right);
        q.add(t2.left);
    }
    return true;
}

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马