Java版 《判断二叉树是否对称》

判断二叉树是否对称

http://www.nowcoder.com/questionTerminal/1b0b7f371eae4204bc4a7570c84c2de1

代码没什么好解释的,一看就懂的代码~

递归

import java.util.*;

public class Solution {

    public boolean isSymmetric (TreeNode root) {
        if(root == null)
            return true;
        return check(root.left,root.right);
    }

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

迭代

import java.util.*;
public class Solution {

    public boolean isSymmetric (TreeNode root) {

        if(root == null)
            return true;
        Queue<TreeNode> q = new LinkedList<>();
        q.offer(root.left);
        q.offer(root.right);

        while(!q.isEmpty()){
            TreeNode left = q.poll();
            TreeNode right = q.poll();
            if(left == null && right == null)
                continue;
            if(left == null || right == null)
                return false;
            if(left.val != right.val)
                return false;

            q.offer(left.left);
            q.offer(right.right);
            q.offer(left.right);
            q.offer(right.left);
        }
        return true;
    }


}


全部评论
为什么这么厉害
1 回复 分享
发布于 2021-02-03 20:54
人狠话不多
点赞 回复 分享
发布于 2021-07-19 12:48
respect
点赞 回复 分享
发布于 2021-07-29 13:10

相关推荐

小谷围鸡肉卷阿姨:+1,腾子投完一动不动
点赞 评论 收藏
分享
30 1 评论
分享
牛客网
牛客企业服务