通过万岁!!!
- 题目:就是给你两个树,让你判断他们是不是相同的。
- 思路:就是用前序或者中序遍历等遍历即可,同时遍历两个树,判断是不是一致即可。然后定义一个全局变量flag来标记是不是相同,如果有不相同了,则直接返回即可。
- 技巧:就是二叉树的遍历。
java代码
class Solution {
boolean flag = true;
public boolean isSameTree(TreeNode p, TreeNode q) {
mid(p, q);
return flag;
}
public void mid(TreeNode p, TreeNode q) {
if (p != null && q != null) {// 都不为空,
if (q.val == p.val) {
if (flag) {
mid(p.left, q.left);
} else {
return;
}
if (flag) {// 左边是不是全都全都一样
mid(p.right, q.right);
} else {
return;
}
} else {// 值不相同
flag = false;
return;
}
} else if (p == null && q == null) {
return;
} else {// 一个是空
flag = false;
return;
}
}
}
- 总结:题目相对简单一点,我这里用的中序遍历。