Skip to content

Commit 1fd02b5

Browse files
committed
pullrequests/lowest_common_ancester_of_a_binary_search_tree
1 parent b21c02d commit 1fd02b5

File tree

1 file changed

+5
-0
lines changed
  • pullrequests/lowest_common_ancester_of_a_binary_search_tree

1 file changed

+5
-0
lines changed

pullrequests/lowest_common_ancester_of_a_binary_search_tree/step1.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ type TreeNode struct {
1313
ルートから見ていく時、共通の祖先になっていないときは必ず、pとqは左か右のどちらかの同じ部分木にいるはず。pとqの間の値になったら共通の祖先になったとわかる。
1414
1515
本来は見つからなかった場合は返り値としてerrorを返したかったのですが、LeetCodeの制約上変えられないのでnilを返すようにしています。
16+
17+
該当ノードが見つからなかったからといってプログラムの実行の継続が困難になるわけではないと思うので、panicやlog.Panicを使うのはやり過ぎだと思います。
18+
場合によっては絶対に見つからないことが起こる入力はしないはずだと言える状況であればlog.Fatalを使ってログに書き込んだ後にos.Exit(1)を呼び出してプログラムを終了させるのが良い可能性もありますが、それも通常の場合やりすぎな気がします。
19+
他にはlog.Printなどを使ってログに見つからなかったことを記録しても良いかもしれませんが、見つからないことが起こる入力があり得るのであれば単にerrorを返り値として返して呼び出し側で処理するのが良いと思っています。
20+
他には単に見つからなかった場合はnilを返すなども手としてはあると思いますが、そうする場合は呼び出し側にもわかるようにコメント等で書いておいて欲しいなと思います。
1621
*/
1722
func lowestCommonAncestorIterativeStep1(root, p, q *TreeNode) *TreeNode {
1823
node := root

0 commit comments

Comments
 (0)