您的位置:首页 > 移动开发

请修改append 函数,利用这个函数实现:两个非降序链表的并集,1->2->3 和2->3->5 并为1->2->3->5 另外只能输出结果,不能修改两个链表的数据。

2014-07-25 20:52 281 查看
不知道啥意思,用JAVA中Linkedlist实现链表,代码如下:

import java.util.LinkedList;

public class append {

/**
* @param PLA
* 请修改append 函数,利用这个函数实现:
两个非降序链表的并集,1->2->3 和2->3->5 并为1->2->3->5
另外只能输出结果,不能修改两个链表的数据。
*/
static LinkedList<Integer> s1 = new LinkedList<Integer>(){ {
add(2);add(3);add(5);
}};
static LinkedList<Integer> s2 = new LinkedList<Integer>(){ {
add(1);add(2);add(3);
}};
static LinkedList<Integer> s = new LinkedList<Integer>();
LinkedList<Integer> combine(LinkedList<Integer>s1,LinkedList<Integer>s2,LinkedList<Integer>s){
int length1=0,length2=0;
while(length1< s1.size()|| length2< s2.size()){
if(length1< s1.size()&& length2< s2.size()){
if(s1.get(length1)<s2.get(length2)){
s.add(s1.get(length1));
length1++;
}
if(s1.get(length1)>s2.get(length2)){
s.add(s2.get(length2));
length2++;
}
if(s1.get(length1)==s2.get(length2)){
s.add(s1.get(length1));
length1++;
length2++;
}
}

else{
System.out.println(length1);
if(length1<=s1.size()){
s.add(s1.get(length1));
length1++;

}
else if(length2<=s2.size()){
s.add(s1.get(length1));
length1++;
}
}
}
return s;

}
public static void main(String[] args) {
// TODO Auto-generated method stub
append a = new append();
System.out.println(a.combine(s1, s2, s));
}

}


运行结果如下:

[1, 2, 3, 5]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐