Leetcode Note: Go - Same Tree
Same Tree - LeetCode
https://leetcode.com/problems/same-tree/
- Go 言語で取り組んだメモ
所感
- p, q の全要素を確認して一致するか比較すれば良さそう
実装準備
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func isSameTree(p *TreeNode, q *TreeNode) bool {
}
Solution
Same Tree - LeetCode
https://leetcode.com/problems/same-tree/solution/
- Approach 1: Recursion
- 再帰的に全要素をチェックする
- Approach 2: Iteration
- 反復して全要素をチェックする
回答
/**
* 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.Right, q.Right) && isSameTree(p.Left, q.Left)
}
- 3つの if でエラーハンドリングというか、シンプルな組み合わせをチェック
- あとは再帰的に isSameTree を呼び出す
- 右は右と比較、左は左と比較
- Solution に Python でのサンプルがあったので簡単に実装できた