标签:提交 深度优先遍历 内存 问题 思路 深度 执行 输入 优先
一. 问题描述
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例 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代码
标签:提交 深度优先遍历 内存 问题 思路 深度 执行 输入 优先
原文地址:https://www.cnblogs.com/xiaobaidashu/p/11799340.html