查看: 11|回复: 0

用js刷剑指offer(复杂链表的复制)

[复制链接]

0

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2012-3-8
发表于 2019-10-15 20:30:00 | 显示全部楼层 |阅读模式

题目描述

输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)

思路

牛客网链接

js代码

/*function RandomListNode(x){
    this.label = x;
    this.next = null;
    this.random = null;
}*/
function Clone(pHead)
{
    // write code here
    if (!pHead) return null
    let p = pHead
    while (p) {
        let node = new RandomListNode(p.label)
        node.next = p.next
        p.next = node
        p = p.next.next
    }
    p = pHead
    while (p) {
        if (p.random) p.next.random = p.random
        else p.next.random = null
        p = p.next.next
    }
    
    p = pHead.next
    let root = new RandomListNode(0)
    let q = root
    while (p) {
        q.next = p
        q = q.next
        if (p.next) p = p.next.next
        else break
    }
    q.next = null
    return root.next
}```


来源:https://www.cnblogs.com/dpnlp/p/yongjs-shua-jian-zhioffer-fu-za-lian-biao-de-fu-zh.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部