-
Notifications
You must be signed in to change notification settings - Fork 0
Minimum depth of binary tree #36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: arai60
Are you sure you want to change the base?
Conversation
| node, depth = queue.popleft() | ||
| if not node.left and not node.right: | ||
| minimum_depth = depth | ||
| break |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここでreturnしてしまって良いと思いました。
| def minDepth(self, root: Optional[TreeNode]) -> int: | ||
| if not root: | ||
| return 0 | ||
| minimum_depth = 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BFSで解くのであれば、leaf nodeを見つけた段階でdepthを返してしまって良いので、minimum_depthは不要かと思います。
| def minDepth(self, root: Optional[TreeNode]) -> int: | ||
| # 幅優先で良い | ||
| minimum_depth = 0 | ||
| queue = deque([(root, 0)]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
phase2, 3だと変えてるので違和感あったのかなと思いますが、(node, nodeの一つ上の深さ) の組をキューに入れているのは理解するの難しいなと思いました。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
そうですね, phase1でわかりにくい+書くなら少しコメントを書く必要があると感じたのでphase2とphase3で変更しました
| if node.right and node.left: | ||
| queue.append((node.right, depth + 1)) | ||
| queue.append((node.left, depth + 1)) | ||
| elif node.right is not None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(phase1のコードに突っ込み入れるのも野暮かもしれませんが) ここだけNoneを使って書いていて他は使ってないので違和感ありました。 elif node.right: で良さそうです
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ありがとうございます。その通りです...
| if node.left: | ||
| queue.append((node.left, depth + 1)) | ||
| if node.right: | ||
| queue.append((node.right, depth + 1)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
None であっても気にせずに queue につっこんで、出てきたやつを continue するという手もあります。
問題
111. Minimum Depth of Binary Tree