Same Tree

2019-02-26  本文已影响0人  小明今晚加班

题目描述
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

分析:给定两个二叉树,判断这两个二叉树是否一样。

我的Code如下:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        //比较到最后的时候会出现都为null的情况
        if(p==null && q==null){
            return true;
        }
        //如果一个为空,一个不为空的情况
        if(p==null || q==null){
            return false;
        }
        
        boolean flag = true;
        
        while(p!=null){
            if(p.val != q.val){
                return false;
            }
            return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
        }
        
        return flag;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读