转载请注明出处:http://blog.csdn.net/crazy1235/article/details/51541570
出处:https://leetcode.com/problems/same-tree/
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.
判断两个2叉树是不是1样(结构1样,每一个对应的结点的值也是1样)。
递归遍历
/**
* 0ms
*
* @param p
* @param q
* @return
*/
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null & q == null) {
return true;
}
if (p == null || q == null) {
return false;
}
if (p.val == q.val) {
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
} else {
return false;
}
}
方法简单死了~
https://leetcode.com/discuss/69708/one-line-java-solution
public boolean isSameTree2(TreeNode p, TreeNode q) {
return (p != null && q != null && p.val == q.val
&& isSameTree2(p.left, q.left) && isSameTree2(p.right, q.right))
|| (p == null && q == null);
}
该方法只是方法1的变形。虽然只是1句话,但是没有方法1结构清晰。
bingo~~