一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 279|回复: 4
收起左侧

[CareerCup] CC150 2.1 问题求助,急切请大神帮忙,谢谢!

[复制链接] |试试Instant~ |关注本帖
LincolnZS 发表于 2015-11-15 09:37:39 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
关于CC150 2.1 remove dups 这道题,解答的第一个算法我就有个小问题不理解,原code如下:

LinkedListNode cloneA = head.clone();
deleteDups(cloneA);
System.out.println(cloneA.printForward());

public static void deleteDups(LinkedListNode n) {
                HashSet<Integer> set = new HashSet<Integer>();
                LinkedListNode previous = null;
                while (n != null) {
                        if (set.contains(n.data)) {
                                previous.next = n.next;
                        } else {
                                set.add(n.data);
                                previous = n;
                        }
                        n = n.next;
                }
        }

问题是:这个方法里面难道就不用返回任何值吗?(比如 previous 甚至是 n 什么的)。为何直接call这个方法,就生成了想要的没有dups的linklist了呢?百思不得其解。。。

请求地里大神帮忙解答,万分万分感谢!!!

ryc111 发表于 2015-11-15 10:13:23 | 显示全部楼层
因为头节点是永远不会被删除的,所以不需要返回值。
回复 支持 反对

使用道具 举报

 楼主| LincolnZS 发表于 2015-11-15 11:12:36 | 显示全部楼层
哦,这样啊,明白了,谢谢大神的点播啊!真是感谢~~
回复 支持 反对

使用道具 举报

 楼主| LincolnZS 发表于 2015-11-15 11:38:43 | 显示全部楼层
嗯。。。可是我还是有个问题,previous 这个变量在这里又有什么用呢?我明白头节点是没有删除,可是是怎么做到只保留了前几个非duplicate节点,而删掉了其他的呢?(next指针最后确实是指到了null,可是我就是搞不明白从call method到结束回来print出来,这个去掉dups的功能是怎么实现出来的。。),再次感谢大家,非常渴望知道答案!!谢谢~
回复 支持 反对

使用道具 举报

gouber 发表于 2015-11-15 12:10:15 | 显示全部楼层
LincolnZS 发表于 2015-11-15 11:38
嗯。。。可是我还是有个问题,previous 这个变量在这里又有什么用呢?我明白头节点是没有删除,可是是怎么 ...

每次遇到有重复,precious指针就不动,设置previous.next为n.next,再让n=n.next,这样原先n指针所指示的node就被踢出链表了,因为链表中没有任何一个node的next是该node。而且实际上因为没有了reference,这个被踢出的node会被Java自动清理掉。
如果不重复就让precious和n都向后移。
previous的作用就是删除重复。用n来寻找重复的node,然后想删除node就要把它前一个node的next设置为其他node,这样这个node就被踢出链表了。previous就是用来记录n的前一个node。
我也**一个,不知道讲的是否清楚。。。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-3 12:57

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表