zoukankan      html  css  js  c++  java
  • leetcode 100.相同的树

    package com.example.lettcode.dailyexercises;
    
    /**
     * @Class IsSameTree
     * @Description 100.相同的树
     * 给定两个二叉树,编写一个函数来检验它们是否相同。
     * 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
     * <p>
     * 示例 1:
     * 输入:
     * 1         1
     * /        / 
     * 2   3     2   3
     * <p>
     * [1,2,3],   [1,2,3]
     * <p>
     * 输出: true
     * <p>
     * 示例 2:
     * <p>
     * 输入:
     * 1          1
     * /           
     * 2             2
     * <p>
     * [1,2],     [1,null,2]
     * <p>
     * 输出: false
     * <p>
     * 示例 3:
     * 输入:
     * 1         1
     * /        / 
     * 2   1     1   2
     * <p>
     * [1,2,1],   [1,1,2]
     * <p>
     * 输出: false
     * @Author
     * @Date 2020/8/7
     **/
    public class IsSameTree {
        static class TreeNode {
            int val;
            TreeNode left;
            TreeNode right;
    
            TreeNode() {
            }
    
            TreeNode(int val) {
                this.val = val;
            }
    
            TreeNode(int val, TreeNode left, TreeNode right) {
                this.val = val;
                this.left = left;
                this.right = right;
            }
        }
    
        public static boolean isSameTree(TreeNode p, TreeNode q) {
            if (p == null) return q == null;
            if (q == null) return p == null;
            if (p.val != q.val) return false;
            boolean resL = isSameTree(p.left, q.left);
            boolean resR = isSameTree(p.right, q.right);
            return resL && resR;
        }
    
        public static void main(String[] args) {
            // [1,2,3],   [1,2,3]
            TreeNode rootP = new TreeNode(1);
            TreeNode treeNode2 = new TreeNode(2);
            TreeNode treeNode3 = new TreeNode(3);
            rootP.left = treeNode2;
            rootP.right = treeNode3;
            TreeNode rootQ = new TreeNode(1);
            treeNode2 = new TreeNode(2);
            treeNode3 = new TreeNode(3);
            rootQ.left = treeNode2;
            rootQ.right = treeNode3;
            boolean ans = isSameTree(rootP, rootQ);
            System.out.println("IsSameTree demo01 result:" + ans);
    
            // [1,2],     [1,null,2]
            rootP = new TreeNode(1);
            treeNode2 = new TreeNode(2);
            rootP.left = treeNode2;
            rootQ = new TreeNode(1);
            treeNode2 = new TreeNode(2);
            rootQ.right = treeNode2;
            ans = isSameTree(rootP, rootQ);
            System.out.println("IsSameTree demo02 result:" + ans);
    
            //[1,2,1],   [1,1,2]
            rootP = new TreeNode(1);
            treeNode2 = new TreeNode(2);
            treeNode3 = new TreeNode(1);
            rootP.left = treeNode2;
            rootP.right = treeNode3;
            rootQ = new TreeNode(1);
            treeNode2 = new TreeNode(1);
            treeNode3 = new TreeNode(2);
            rootQ.left = treeNode2;
            rootQ.right = treeNode3;
            ans = isSameTree(rootP, rootQ);
            System.out.println("IsSameTree demo03 result:" + ans);
        }
    }
    
  • 相关阅读:
    IP掩码的作用
    linux shell 笔记
    ubuntu apt-get Failed to fetch Temporary failure resolving 'security.ubuntu.com'
    ubuntu 16.04 & 18.04 远程桌面使用
    取消Ubuntu开机硬盘自检
    linux shell 脚本输入参数解析
    Ubuntu 16.04 + python3 源码 安装+使用labelImg最新版
    用tinyxml2读写xml文件_C++实现
    常用工具问题及解决方案
    可视化调试工具
  • 原文地址:https://www.cnblogs.com/fyusac/p/13450774.html
Copyright © 2011-2022 走看看