Flatten a Multilevel Doubly Linked List - all test cases are working except for one

'''
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            
            

'''

Comments (0)