给出两个二叉树,请写出一个判断两个二叉树是否相等的函数。
判断两个二叉树相等的条件是:两个二叉树的结构相同,并且相同的节点上具有相同的值。
思路:遍历两个树,判断值是否相等
package main
import . "nc_tools"
/*
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
/**
*
* @param p TreeNode类
* @param q TreeNode类
* @return bool布尔型
*/
func isSameTree( p *TreeNode , q *TreeNode ) bool {
// write code here
if p == nil && q == nil {
return true
}
if (p == nil && q != nil) || (p != nil && q == nil) {
return false
}
is1 := isSameTree(p.Left, q.Left)
is2 := isSameTree(p.Right, q.Right)
if p.Val == q.Val && is1 && is2 {
return true
}
return false
}