描述

  1. 给定两个二叉树,编写一个函数来检验它们是否相同。
  2. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
  3. 示例 1:
  4. 输入: 1 1
  5. / \ / \
  6. 2 3 2 3
  7. [1,2,3], [1,2,3]
  8. 输出: true
  9. 示例 2:
  10. 输入: 1 1
  11. / \
  12. 2 2
  13. [1,2], [1,null,2]
  14. 输出: false
  15. 示例 3:
  16. 输入: 1 1
  17. / \ / \
  18. 2 1 1 2
  19. [1,2,1], [1,1,2]
  20. 输出: false

解答

  1. /**
  2. * Definition for a binary tree node.
  3. * public class TreeNode {
  4. * int val;
  5. * TreeNode left;
  6. * TreeNode right;
  7. * TreeNode() {}
  8. * TreeNode(int val) { this.val = val; }
  9. * TreeNode(int val, TreeNode left, TreeNode right) {
  10. * this.val = val;
  11. * this.left = left;
  12. * this.right = right;
  13. * }
  14. * }
  15. */
  16. class Solution {
  17. public boolean isSameTree(TreeNode p, TreeNode q) {
  18. if (p == null && q == null) {
  19. return true;
  20. } else if (p == null || q == null) {
  21. return false;
  22. } else if (p.val != q.val) {
  23. return false;
  24. } else {
  25. return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
  26. }
  27. }
  28. }

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/same-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。