...
| Code Block |
|---|
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def minDepth(self, root: TreeNode) -> int:
if root==None:
return 0
if root.left==None and root.right==None: return 1
elif root.left!=None and root.right!=None:
return min( self.minDepth(root.left), self.minDepth(root.right)) + 1
elif root.left==None:
return self.minDepth(root.right) + 1
else:
return self.minDepth(root.left) + 1
|
Reorder List
| Info |
|---|
Given a singly linked list L: L0→L1→…→Ln-1→Ln, ex1) Given 1->2->3->4, reorder it to 1->4->2->3. |
| Code Block |
|---|
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def reorderList(self, head: ListNode) -> None:
"""
Do not return anything, modify head in-place instead.
"""
# collect value serially
v=[]
p=head
while p!=None:
v.append(p.val)
p=p.next
# reorder based on the given logic
i=0
lcnt=len(v)
j=lcnt-1
p=head
while p!=None:
p.val = v[i]
i += 1
p=p.next
if p!=None:
p.val = v[j]
j-=1
p = p.next
|