java实现合并两个已经排序的列表实例代码
相对于c++来说,java的最大特点之一就是没有令人困惑的指针,但是我们不可否认,在某些特定的情境下,指针确实算的上一把利刃。虽然java中没有明确定义出指针,但是由于类的思想,我们可以使用class来实现指针的操作。小二,上栗子-----合并两个已经排序的列表,输出合并后列表的头结点,且合并后的列表中的元素是有序的。
需要时刻铭记于心的:在java中,列表的一个节点其实就是某个类实例化的一个对象。
示例代码如下:
package decemberof2013;
class listnode{
int val;
listnode next;
public listnode(int val) {
this.val = val;
this.next = null;
}
}
public class mergetowsortedlists {
public listnode mergelists(listnode l1, listnode l2){
listnode p1 = l1;
listnode p2 = l2;
listnode fadehead = new listnode(0);
listnode phead = fadehead;
while(p1 != null && p2 != null){
if(p1.val <= p2.val){
phead.next = p1;
p1 = p1.next;
}
else{
phead.next = p2;
p2 = p2.next;
}
phead = phead.next;
}
if(p1 != null){
phead.next = p1;
}
else{
phead.next = p2;
}
return fadehead.next;
}
}