由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - cc150 2.1 的一个小问题,希望大神路过来看一眼,小女子在此谢
相关主题
LeetCode 新题 graph clone问道题目 Map的iterator
Careercup书第四版一道题的解答有错求leetcode LRU Java 解法
careerup 2.4的答案是不是不对呀?!贡献Amazon的电面经验
150上这个是不是不对? (转载)高频题:下面这lru的code 怎么改成有效率且thread-safe的版本
请教一道单链表问题问个题,用递归方法
问个MSFT的题一道linked list编程题
binary tree, sum of 2 nodes == given numberms面试题
word ladder II 找所有而不是第一个的最短路径一般咋做的?large file的一道题
相关话题的讨论汇总
话题: dnode话题: cur话题: null话题: void话题: n1
进入JobHunting版参与讨论
1 (共1页)
z*****0
发帖数: 63
1
请不要嘲笑我的无知,我在看cc150的时候,给的答案都是用LinkedListNode,但是我
在java编辑中,LinkedListNode 下面是红色的波浪,说没有此定义的class。我在网上
搜索 找到了 http://fisheye.igniterealtime.org/browse/openfire/trunk/src/java/org/jivesoftware/util/LinkedListNode.java?r=13651&r=13651 这个网址,我下载了这里得linkelistnode得定义。感觉还是不对。
根据我对答案的理解,她用的是一个双向链表,于是我写了这个class:
package cc150;
public class dNode {
private dNode pre = null;
private dNode next = null;
private int data;

dNode(int data){
this.data = data;
}

void addNode(dNode cur, int i){
dNode newNode = new dNode(i);

if(cur == null){
cur = newNode;
}else{
while(cur.getNext() != null){
cur = cur.getNext();
}
cur.setNext(newNode);
newNode.setPre(cur);
cur = newNode;
}
}

void removeNode(dNode cur){
cur.getPre().setNext(cur.getNext());
cur.getNext().setPre(cur.getPre());
}

dNode getPre(){
return pre;
}

dNode getNext(){
return next;
}

int getData(){
return data;
}

void setPre(dNode pre){
this.pre = pre;
}

void setNext(dNode next){
this.next = next;
}

void setData(int data){
this.data = data;
}
}
在解这道题的第一步可以用 buffer的时候,我是这么写的:
public static void deleteDup(dNode cur){//with temporary buffer
HashMap list = new HashMap();

while(cur.getNext() != null){
if(list.containsValue(cur.getData())){
cur.removeNode(cur);
}else{
list.put(null, cur.getData());
}
cur = cur.getNext();
}
}
public static void print(String s, dNode test){
while(test != null ){
System.out.println(s+" "+test.getData());
test = test.getNext();
}
}
public static void main(String[] args){
dNode n1 = new dNode(1);
n1.addNode(n1, 1);
n1.addNode(n1, 2);
n1.addNode(n1, 3);

print("Before deleting", n1);

deleteDup(n1);

print("After deleting", n1);

}
第二步 不可以用buffer 我是这么写的:
public static void deleteDup2(dNode n){//without buffer
dNode cur = n;
dNode check = n;
while(cur != null){
check = cur.getPre();
while(check != null){
if(cur.getData() == check.getData()){
cur.removeNode(cur);
}
check = check.getPre();
}
cur = cur.getNext();
}
}
因为是第一次刷题,我不知道我这样写有没有不妥之处,想要实现的功能是可以实现的
。希望路过的大神帮我看一下。
如果有大神能告诉我 linkedlistnode 怎么才能用,跪谢 :)
l*n
发帖数: 529
2
LinkedListNode没定义你写一个就好了,而且也不用搞太多包装。
class LinkedListNode {
int val;
LinkedListNode next;
}

【在 z*****0 的大作中提到】
: 请不要嘲笑我的无知,我在看cc150的时候,给的答案都是用LinkedListNode,但是我
: 在java编辑中,LinkedListNode 下面是红色的波浪,说没有此定义的class。我在网上
: 搜索 找到了 http://fisheye.igniterealtime.org/browse/openfire/trunk/src/java/org/jivesoftware/util/LinkedListNode.java?r=13651&r=13651 这个网址,我下载了这里得linkelistnode得定义。感觉还是不对。
: 根据我对答案的理解,她用的是一个双向链表,于是我写了这个class:
: package cc150;
: public class dNode {
: private dNode pre = null;
: private dNode next = null;
: private int data;
:

1 (共1页)
进入JobHunting版参与讨论
相关主题
large file的一道题请教一道单链表问题
插入节点到complete binary tree的末尾问个MSFT的题
yelp 面经binary tree, sum of 2 nodes == given number
生成树word ladder II 找所有而不是第一个的最短路径一般咋做的?
LeetCode 新题 graph clone问道题目 Map的iterator
Careercup书第四版一道题的解答有错求leetcode LRU Java 解法
careerup 2.4的答案是不是不对呀?!贡献Amazon的电面经验
150上这个是不是不对? (转载)高频题:下面这lru的code 怎么改成有效率且thread-safe的版本
相关话题的讨论汇总
话题: dnode话题: cur话题: null话题: void话题: n1