'''
class Solution:
def flatten(self, head: 'Node') -> 'Node':
p=head
oldnxt=[]
if not p:
return p
while p:
print(p.val)
if p.child:
print('while p if p.child',p.val)
cur=p
nxt=p.next
if nxt:
print(nxt.val)
oldnxt.append(nxt)
curchild=p.child
cur.next=curchild
curchild.prev=cur
cur.child=None
if nxt:
nxt.prev=None
p=cur.next
continue
elif not p.child:
print('while p, if not p.child',p.val)
if not p.next:
print('if not pnext')
while len(oldnxt)>0:
print('while length oldnext>0',len(oldnxt))
if oldnxt[-1] is not None:
print('if oldnxt[-1] not none',p.val)
p.next=oldnxt[-1]
oldnxt[-1].prev=p
p=oldnxt[-1]
oldnxt.pop()
print('if oldnxt[-1] not none',p.val,p.child,p.next,p.prev.val,len(oldnxt))
break
elif oldnxt[-1] is None:
print('oldnxt is none')
oldnxt.pop()
if len(oldnxt)==0:
p.next=None
break
#print(p.next)
p=p.next
elif p.next:
print('if pnext')
p=p.next
return head
'''