这题是让判断两棵树是否相同,最简单的方式就是使用递归。先判断根节点是否相同, 如 果 相 同 再 分 别 判 断 左 右 子 节 点 是 否 相 同 , 判 断 的 过 程 中 只 要 有 一 个 不 相 同 就 返 回 fal se,如果全部相同才会返回true。

    1. public boolean isSameTree(TreeNode p, TreeNode q) {
    2. // 如果都为空我们就认为他是相同的
    3. if (p == null && q == null) return true;
    4. // 如果一个为空,一个不为空,很明显不可能是相同的树,直接返回false即可
    5. if (p == null || q == null) return false;
    6. // 如果这两个节点都不为空并且又不相等,所以他也不可能是相同的树,直接返回false
    7. if (p.val != q.val) return false;
    8. // 走到这一步说明节点p和q是完全相同的,我们只需要在比较他们的左右子节点即可
    9. return isSameTree(p.left, q.left) && isSameTree(q.right, p.right);
    10. }