leetcode地址:https://leetcode.cn/problems/same-tree/
在這題上,我首先想到的方法是進行前序遍歷,轉(zhuǎn)換成一個數(shù)組,通過比較數(shù)組進行判斷是否是相同的樹
但是出現(xiàn)了一個問題,在樹中,有可能出現(xiàn)某個節(jié)點為null的情況,這種情況下遍歷的結(jié)果會出現(xiàn)差錯
看題解后使用的方法還是遞歸遍歷,這個方法還是厲害
解
/**
* Definition for a binary tree node.
* 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
}
return isSameTree(p.Left,q.Left)&&isSameTree(p.Right,q.Right)
}