LeetCode 100. Same Tree

本文介绍了一种通过递归比较两个二叉树节点值及结构的方法来判断它们是否完全相同。该方法首先检查两个根节点是否都为空或者都有非空值且节点值相等,然后递归地比较左右子树。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.

public class Solution100 {

    public static void main(String args[]){
        Solution100 solution100 = new Solution100();

        TreeNode treeNode0 = new TreeNode(0);
        TreeNode treeNode1 = new TreeNode(1);
        TreeNode treeNode2 = new TreeNode(2);
        TreeNode treeNode3 = new TreeNode(3);
        TreeNode treeNode4 = new TreeNode(4);
        TreeNode treeNode5 = new TreeNode(5);

        treeNode0.left  = treeNode1;
        treeNode0.right = treeNode2;
        treeNode2.left  = treeNode3;
        treeNode2.right = treeNode4;
        treeNode1.right = treeNode5;

        boolean isSame = solution100.isSameTree(treeNode0, treeNode0);
        System.out.print(isSame);
    }


    /**
     * 同时递归来做,同时传入相同位置的节点比较是否相等
     *
     */
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if(p==null && q==null){
            return true;
        }

        if(p!=null && q!=null && p.val==q.val){
            boolean left  = isSameTree(p.left, q.left);
            boolean right = isSameTree(p.right, q.right);
            if(left==right && left==true){
                return  true;
            }else{
                return false;
            }
        }

        return false;
    }


    static class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;
        TreeNode(int x) { val = x; }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值