LeetCode.100.Same Tree 相同的树

题目描述

100 Same Tree https://leetcode.com/problems/same-tree/description/ https://leetcode-cn.com/problems/same-tree/submissions/

Given two binary trees, write a function to check if they are the same or not.

Two binary trees are considered the same if they are structurally identical and the nodes have the same value.

Example 1:

Input:     1        1
          / \      / \
         2   3    2   3

        [1,2,3],  [1,2,3]

Output: true

Example 2:

Input:     1        1
          /          \
         2            2

        [1,2],    [1,null,2]

Output: false

Example 3:

Input:     1        1
          / \      / \
         2   1    1   2

        [1,2,1],  [1,1,2]

Output: false

相似题目

LeetCode.100.Same Tree 相同的树 LeetCode.572.Subtree of Another Tree 判断是否二叉树的子树


解题过程

三年前做过的题,用递归相当简单,不用过脑子,对比当前节点,并且递归对比左右子树即可

class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if(p==null && q==null){
            return true;
        }else if(p!=null && q!=null && p.val==q.val){
            return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
        }else {
            return false;
        }
    }
}

GitHub代码

algorithms/leetcode/leetcode/_100_SameTree.java https://github.com/masikkk/algorithms/blob/master/leetcode/leetcode/_100_SameTree.java