Leetcode 766 Solution

This article provides solution to leetcode question 766 (flatten-a-multilevel-doubly-linked-list)

https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list

Solution

""" # 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 flatten(self, head): if not head: return None
s = [] s.append(head) prev = None
while s: node = s.pop(-1)
if node.next: s.append(node.next) if node.child: s.append(node.child)
node.prev = prev if prev: prev.next = node node.child = None node.next = None
prev = node
return head