算法:判断两棵二叉树,是否相等

243 阅读1分钟
/**
 * 判断是否同一棵二叉树
 * @param p
 * @param q
 * @return
 */
public static boolean isSameTree(Node p, Node q) {
    // 如果两个节点,一个为空,一个不为空,直接返回false,结构不同
    if (p == null ^ q == null) {
        return false;
    }
    // 如果两个节点都是空,结构相同
    if (p == null && q == null) {
        return true;
    }
    // 判断值 和 子节点
    return p.value == q.value && isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
```
```