100. Same Tree

Description:

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

My code:

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} p
 * @param {TreeNode} q
 * @return {boolean}
 */
var isSameTree = function(p, q) {
    if(p == null && q == null) {
        return true;
    } else if (p == null || q == null) {
        return false;
    } else if(p.val == q.val) { // 值相同时判断左右子树
       return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
    } else {
       return false;
    }
};

你可能感兴趣的:(100. Same Tree)