def FlattenNode(pre: Node, cur: Node) -> Node:
            if not cur:
                return pre

            pre.next = cur
            cur.prev = pre

            tmpnode = cur.next

            childnode = FlattenNode(cur, cur.child)
            cur.child = None

            return FlattenNode(childnode, tmpnode)