阅读 81

Leetcode100.相同的树

Leetcode100.相同的树

题目描述

/**
     * 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。
     *
     * 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
     */

思路分析

  1. 判断两棵树是否相同,既要判断树的结构是否相同,还有判断对应位置的节点值是否相等
  2. 使用深度优先的思路,即递归的判断当前树及其左子树是否在结构和节点值上相等
  3. 判断思路
    • 先判断节点是否为空,如果为空,说明树结构相同
    • 如果节点有一个不为空,说明结构不相同
    • 然后判断节点值是否对应相等
    • 递归左子树和右子树
  4. 源码见下

源码及分析

 /**
     *
     * @param p 根节点p
     * @param q 根节点q
     * @return
     * 使用深度优先的思路
     */
    public boolean isSameTree(TreeNode p, TreeNode q) {
        //如果两棵树都为空,则返回true
        if (p == null && q == null){
            return true;
            //否则两棵树结构不相同,返回假
        }else if (p == null || q == null){
            return false;
            //判断结构形同后,再判断值是否相等
        }else if (p.val != q.val){
            return false;
        }else {
            //递归判断左子树和右子树
            return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
        }

    }

原文:https://www.cnblogs.com/mx-info/p/15313754.html

文章分类
百科问答
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐