这题是让判断两棵树是否相同,最简单的方式就是使用递归。先判断根节点是否相同, 如 果 相 同 再 分 别 判 断 左 右 子 节 点 是 否 相 同 , 判 断 的 过 程 中 只 要 有 一 个 不 相 同 就 返 回 fal se,如果全部相同才会返回true。
public boolean isSameTree(TreeNode p, TreeNode q) {// 如果都为空我们就认为他是相同的if (p == null && q == null) return true;// 如果一个为空,一个不为空,很明显不可能是相同的树,直接返回false即可if (p == null || q == null) return false;// 如果这两个节点都不为空并且又不相等,所以他也不可能是相同的树,直接返回falseif (p.val != q.val) return false;// 走到这一步说明节点p和q是完全相同的,我们只需要在比较他们的左右子节点即可return isSameTree(p.left, q.left) && isSameTree(q.right, p.right);}
