复杂链表复制
问题描述:
请实现函数ComplexListNode Clone(ComplexListNode head),复制一个复杂链表。在复杂链表中,每个结点除了有一个Next指针指向下一个结点外,还有一个Sibling指向链表中的任意结点或者NULL。
解题思路:
1. 根据原始链表的每个结点N创建对应的复制节点,并添加到每个节点之后,行成一个新的链表
2. 遍历新的链表,重置复制的节点的random指针为原指针的后一个地址
3. 拆分出两个链表
package main
import (
"fmt"
)
type Node struct {
Value int
Next *Node
Random *Node
}
type List struct {
head *Node
tail *Node
size int
}
func (l *List) Length() int {
cnt := 0
node := l.head
for node != nil {
cnt ++
node = node.Nex
复杂链表复制最先出现在Python成神之路。
共有 0 条评论