leetcode:100. Same Tree

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

Answer

package main

import "fmt"

type TreeNode struct {
    Val   int
    Left  *TreeNode
    Right *TreeNode
}

func isSameTree(p *TreeNode, q *TreeNode) bool {

    //判断不相同的情况
    if p == nil && q == nil {
        return true
    }

    if p == nil || q == nil {
        return false
    }

    if p.Val != q.Val {
        return false
    }

    if isSameTree(p.Left, q.Left) == false {
        return false
    }
    return isSameTree(p.Right, q.Right)

}


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