zoukankan      html  css  js  c++  java
  • 每日一题力扣430

    多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。

    给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/flatten-a-multilevel-doubly-linked-list
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution:
        def flatten(self, head: 'Node') -> 'Node':
            if not head:return head
            dummy=Node(None,None,None,None)
            self.preNode=dummy
            def dfs(curNode:Node):#前序遍历
                if not curNode:return 
                left=curNode.child#左边为孩子节点
                right=curNode.next#右边为正常的链表
                curNode.child=None#将孩子节点置空
                self.preNode.next=curNode#先遍历中间的,创建下一个链接
                curNode.prev=self.preNode#创建前一个链接
                self.preNode=curNode#遍历中间的
                dfs(left)#然后遍历左边的
                dfs(right)#再遍历右边的
            
            dfs(head)
            res=dummy.next
            res.prev=None
            return res
  • 相关阅读:
    js事件循环机制event-loop
    javascript编译与执行
    css中rem,em,px的区别和使用场景
    float
    flex布局
    azoux's blog
    1004 成绩排名 PAT Basic Level
    1003 我要通过! PTA Basic Level
    腾讯云防盗链测试
    简单多项式求解
  • 原文地址:https://www.cnblogs.com/liuxiangyan/p/14532199.html
Copyright © 2011-2022 走看看