剑指offer第35题复杂链表复制

大佬们好,今天小弟在牛客上刷剑指offer第35题复杂链表复制时,当我本地测试没问题之后,我将代码提交到牛客,得到的输出是:

您的代码已保存
答案错误:您提交的程序没有通过所有的测试用例
case通过率为0.00%

用例:
{1,2,3,4,5,3,5,#,2,#}

对应输出应该为:

{1,2,3,4,5,3,5,#,2,#}

你的输出为:
空.请检查一下你的代码,有没有循环输入处理多个case.点击查看如何处理多个case

本人代码:

public class Solution {
    public RandomListNode Clone(RandomListNode pHead)
    {
        if (pHead == null)
            return null;

        RandomListNode node = pHead;
        RandomListNode retNode = null;
        while (node != null) {
            RandomListNode copyNode = new RandomListNode(node.label);
            copyNode.next = node.next;
            node.next = copyNode;
            node = copyNode.next;
        }

        node = pHead;
        while (node != null && node.next != null) {
            if (node.random != null) {
                node.next.random = node.random.next;
            }
            node = node.next.next;
        }

        retNode = pHead.next;

        node = pHead;
        while (node != null && node.next != null && node.next.next != null) {
            RandomListNode temp = node.next;
            node.next = temp.next;
            temp.next = node.next.next;
            node = node.next;
        }

        return retNode;
    }
}

我感觉自己的代码逻辑没有问题啊,到底该怎么修改,才能通过呢?请知道的大佬提供宝贵的修改意见,谢谢。

#笔试题目#
全部评论
第三个while只加中间的条件
点赞 回复 分享
发布于 2019-07-03 23:35
你的random指针只有不空的时候才给新赋值,是空的时候没有赋值。应该加上else的处理
点赞 回复 分享
发布于 2019-07-03 23:18

相关推荐

Cherrycola01:0实习 0项目 约等于啥也没有啊 哥们儿这简历认真的吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务