diff --git a/pullrequests/same_tree/step1.go b/pullrequests/same_tree/step1.go new file mode 100644 index 0000000..11cc70d --- /dev/null +++ b/pullrequests/same_tree/step1.go @@ -0,0 +1,29 @@ +//lint:file-ignore U1000 Ignore all unused code +package sametree + +type TreeNode struct { + Val int + Left *TreeNode + Right *TreeNode +} + +/* +レビュワーの方へ: + - このコードは既にGoの標準のフォーマッタで整形済みです。演算子の周りにスペースがあったりなかったりしますが、これはGoのフォーマッタによるもので、優先順位の高い演算子の周りにはスペースが入らず、低い演算子の周りには入るようになっています。https://qiita.com/tchssk/items/77030b4271cd192d0347 +*/ + +/* +時間:3分30秒 +*/ +func isSameTreeStep1(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 isSameTreeStep1(p.Left, q.Left) && isSameTreeStep1(p.Right, q.Right) +} diff --git a/pullrequests/same_tree/step2.go b/pullrequests/same_tree/step2.go new file mode 100644 index 0000000..dc78ebb --- /dev/null +++ b/pullrequests/same_tree/step2.go @@ -0,0 +1,20 @@ +//lint:file-ignore U1000 Ignore all unused code +package sametree + +/* +レビュワーの方へ: + - このコードは既にGoの標準のフォーマッタで整形済みです。演算子の周りにスペースがあったりなかったりしますが、これはGoのフォーマッタによるもので、優先順位の高い演算子の周りにはスペースが入らず、低い演算子の周りには入るようになっています。https://qiita.com/tchssk/items/77030b4271cd192d0347 +*/ + +/* +リファクタした。 +*/ +func isSameTreeStep2(p *TreeNode, q *TreeNode) bool { + if p == nil && q == nil { + return true + } + if p == nil || q == nil || p.Val != q.Val { + return false + } + return isSameTreeStep2(p.Left, q.Left) && isSameTreeStep2(p.Right, q.Right) +}