100. 相同的树

2021/4/16 18:27:06

本文主要是介绍100. 相同的树,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 

 

 

 

广度优先遍历,依次访问2颗树的每一个节点并经行比较

 时间O(n),空间O(n)

    public boolean isSameTree(TreeNode p, TreeNode q) {
        Deque<TreeNode> queue1 = new LinkedList<TreeNode>();
        Deque<TreeNode> queue2 = new LinkedList<TreeNode>();
        queue1.add(p);
        queue2.add(q);
        while(!queue1.isEmpty() && !queue2.isEmpty()){
            TreeNode temp1 = queue1.poll();
            TreeNode temp2 = queue2.poll();
            if (temp1==null && temp2==null) continue;
            if (temp1==null || temp2==null) return false;
            if (temp1.val!=temp2.val) return false;
            queue1.add(temp1.left);
            queue1.add(temp1.right);
            queue2.add(temp2.left);
            queue2.add(temp2.right);
        }
    return queue1.isEmpty() && queue2.isEmpty();
    }

 



这篇关于100. 相同的树的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程