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

1244E - Minimizing Difference
1688A - Cirno's Perfect Bitmasks Classroom
219A - k-String
952A - Quirky Quantifiers
451B - Sort the Array
1505H - L BREAK into program
171E - MYSTERIOUS LANGUAGE
630D - Hexagons
1690D - Black and White Stripe
1688D - The Enchanted Forest
1674C - Infinite Replacement
712A - Memory and Crow
1676C - Most Similar Words
1681A - Game with Cards
151C - Win or Freeze
1585A - Life of a Flower
1662A - Organizing SWERC
466C - Number of Ways
1146A - Love "A"
1618D - Array and Operations
1255A - Changing Volume
1710C - XOR Triangle
415C - Mashmokh and Numbers
8A - Train and Peter
591A - Wizards' Duel
1703G - Good Key Bad Key
1705A - Mark the Photographer
1707A - Doremy's IQ
1706B - Making Towers
1325B - CopyCopyCopyCopyCopy