查看: 1533| 回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

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

全局:

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

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了呢?百思不得其解。。。

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


上一篇:关于binary tree level order traversal的变形题
下一篇:Leetcode求刷友求组队
🔗
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。
我也**一个,不知道讲的是否清楚。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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