我编写了一个java例程来比较2个二叉树.我正在寻找在更短的时间内运行的更好的算法.
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
class Solution {
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) && isSameTree(p.left, q.left) &&
isSameTree(p.right, q.right))
return true;
else
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码需要O(n log n)时间.
如何减少所需的时间?