• 每日一题力扣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
  • 相关阅读:
    Python 一条语句如何在多行显示的问题
    代理模式
    MySQL workbench中的PK,NN,UQ,BIN,UN,ZF,AI说明
    异步加载 Echarts图的数据
    Web页面中两个listbox的option的转移
    半透明效果
    在地图上使图片透明
    加载图片方式
    获取鼠标坐标
    画笔与画刷
  • 原文地址:https://www.cnblogs.com/liuxiangyan/p/14532199.html
Copyright © 2020-2023  润新知