问题描述
问题分析
水题,考察基础的递归。
解法:递归
- 时间复杂度:O( n ),其中n表示树节点的个数。
Java代码
package com.company;
public class Main {
static public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public static void main(String[] args) {
TreeNode tree1 = new TreeNode(1);
tree1.right = new TreeNode(2);
TreeNode tree2 = new TreeNode(1);
tree2.right = new TreeNode(2);
System.out.println(isSameTree(tree1, tree2));
}
static public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null && q == null) {
//全为null
return true;
}else if (p == null || q == null){
//有一个为null
return false;
}
//都不为null
if (p.val == q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right)){
return true;
}
return false;
}
}
结果分析
以上代码的执行结果:
执行时间 | 内存消耗 |
---|---|
0 ms | 34.3 MB |