题目要求
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
1 2 3 4 5 6 7
| 输入: 1 1 / \ / \ 2 3 2 3
[1,2,3], [1,2,3]
输出: true
|
1 2 3 4 5 6 7
| 输入: 1 1 / \ 2 2
[1,2], [1,null,2]
输出: false
|
原题链接:100. 相同的树
解题思路
- 两个二叉树全为null:true
- 分支一个为空,一个不为空:false
- 所在位置的之不同:false
- 递归判断其左子树和右子树
1 2 3 4 5 6 7 8 9
| class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p == null && q == null){ return true; } if((p == null && q!= null) || (p != null && q == null) || (p.val != q.val)) return false; return isSameTree(p.left,q.left) && isSameTree(p.right,q.right); } }
|