Given the roots of two binary trees p
and q
, 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: p = [1,2,3], q = [1,2,3]
Output: true
Example 2:
Input: p = [1,2], q = [1,null,2]
Output: false
Example 3:
Input: p = [1,2,1], q = [1,1,2]
Output: false
Constraints:
[0, 100]
.-10^4 <= Node.val <= 10^4
題目給出兩個二元樹的根結點要判斷兩個樹是否相同
兩顆樹相同的定義有兩個條件:
對於兩個二元樹的根結點 q, p 是相同可以歸納出以下檢驗條件
package sol
/**
* 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 {
return q == nil
}
if q != nil {
if q.Val != p.Val {
return false
}
return isSameTree(p.Left, q.Left) && isSameTree(p.Right, q.Left)
}
return false
}