码迷,mamicode.com
首页 > 其他好文 > 详细

第100题:相同的树

时间:2019-11-05 17:01:26      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:提交   深度优先遍历   内存   问题   思路   深度   执行   输入   优先   

一. 问题描述

给定两个二叉树,编写一个函数来检验它们是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例 1:

输入:       1         1

               / \        / \

             2   3    2   3

 

        [1,2,3],   [1,2,3]

输出: true

示例 2:

输入:      1          1

          /                  \

      2                        2

 

        [1,2],     [1,null,2]

输出: false

示例 3:

输入:       1         1

               / \        / \

            2   1     1   2    

        [1,2,1],   [1,1,2]

输出: false

二. 解题思路

本题思路:采用深度优先遍历树,进行比较两个树的每一个节点。

步骤一:将根节点压入栈。

步骤二:从栈中取出一个节点,判断该节点是否有右子树,左子树,如果有将其子树入栈,并判断两个根节点是否相同,相同继续步骤三,不同,返回false.

步骤三:重复步骤二,直到栈为空。

三. 执行结果

执行用时 :1 ms, 在所有 java 提交中击败了47.60%的用户

内存消耗 :34.1 MB, 在所有 java 提交中击败了85.32%的用户

四. Java代码

第100题:相同的树

标签:提交   深度优先遍历   内存   问题   思路   深度   执行   输入   优先   

原文地址:https://www.cnblogs.com/xiaobaidashu/p/11799340.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!