# Build Week Aug 20 ## Min Depth ``` Understand: Example 1 (just one node): 3 min-depth = 1 (3) Example 2 (one subtree is shorter, this is already given in the problem): 3 / \ 9 20 / \ 15 7 min-depth = 2 (3->9) Example 1 (a degenerate tree): 3 \ 20 \ 7 min-depth = 3 (3->20->7) Plan: You can use DFS and output the minimum depth or use BFS which is better on average ``` ``` def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: if head == None: return None dummyHead = ListNode(-1) dummyHead.next = head left = right = dummyHead for i in range(0, n + 1): right = right.next while right != None: left = left.next right = right.next left.next = left.next.next return dummyHead.next ```