430. Flatten a Multilevel Doubly Linked List - LeetCode Solution


LinkedList DFS

Python Code:

"""
# Definition for a Node.
class Node:
    def __init__(self, val, prev, next, child):
        self.val = val
        self.prev = prev
        self.next = next
        self.child = child
"""

class Solution:
    def trav(self,head1):
        root = head1
        if not root:
            return None
        while root:
            a = None
            if root.child:
                a = self.trav(root.child) 
            if a:
               
                a.prev = head1
                
                temp = root.next
               
                root.next = a
                while root.next:
                    root = root.next
                
                root.next = temp

            root = root.next
        return head1
                
                
    def flatten(self, head: 'Node') -> 'Node':
        if not head:
            return None
        
        
        root = self.trav(head)
        temp = root
        temp.prev = None
        temp.child= None
        last = temp
        temp = temp.next
        while temp:
            temp.child = None
            temp.prev = last
            last = temp
            temp = temp.next
            
        
        return root


Comments

Submit
0 Comments
More Questions

1534B - Histogram Ugliness
1611B - Team Composition Programmers and Mathematicians
110A - Nearly Lucky Number
1220B - Multiplication Table
1644A - Doors and Keys
1644B - Anti-Fibonacci Permutation
1610A - Anti Light's Cell Guessing
349B - Color the Fence
144A - Arrival of the General
1106A - Lunar New Year and Cross Counting
58A - Chat room
230A - Dragons
200B - Drinks
13A - Numbers
129A - Cookies
1367B - Even Array
136A - Presents
1450A - Avoid Trygub
327A - Flipping Game
411A - Password Check
1520C - Not Adjacent Matrix
1538B - Friends and Candies
580A - Kefa and First Steps
1038B - Non-Coprime Partition
43A - Football
50A - Domino piling
479A - Expression
1480A - Yet Another String Game
1216C - White Sheet
1648A - Weird Sum