题解 | #判断二叉树是否相等# 小白应该能懂!
判断二叉树是否相等
http://www.nowcoder.com/practice/9a9e74b71f944efab9992925f7f9a65e
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/*
解题思路:
判断二叉树是否相等,就只需要同时对这两颗二叉树做dfs(先序遍历)即可。
再dfs的过程去校验对应的值是否相等。
1)如果dfs到两课树的节点同时为null,那说明是相等的,因为同时dfs都越过了叶子节点了。肯定相等
2)如果说有一颗树的节点先为null,或者说 对应的节点不相等就不是相等的了。
*/
public boolean isSameTree (TreeNode p, TreeNode q) {
// 同时越过了叶子节点
if(p==null && q==null) return true;
// 有一个颗树的节点先为null,或者对应的节点不相等
if(p==null|| q==null || q.val!=p.val) return false;
// 递归dfs(这里采用先序dfs,即,根左右的节奏),验证左子树相等 并且 右子树相等。
return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
}
}
海康威视公司福利 1137人发布