class Solution(object):
def removechild(self,head):
cur = head
while cur:
deepest = cur
if cur.child != None:
temp = cur.next
cur.next = cur.child
cur.child.prev = cur
cur.child = None
last = self.removechild(cur.next)
if temp:
last.next = temp
temp.prev = last
else:
deepest = last
cur = temp
else:
cur = cur.next
return deepest
def flatten(self, head):
"""
:type head: Node
:rtype: Node
"""
if not head:
return
self.removechild(head)
return head