MergeTwoSortedList

来源:互联网 发布:la域名在哪注册 编辑:程序博客网 时间:2024/06/05 04:41

合并两个有序链表:

package leetcode;

import java.util.List;

public class MergeTwoSortedList {
public ListNode MergeTwoSortedList(ListNode l1,ListNode l2) {
// TODO Auto-generated constructor stub
ListNode helper=new ListNode(0); //l1,l2实际上是一个节点,带有指针域
ListNode pre=helper; //pre指针指向helper结点,pre这里就是一直指向上一个节点。
helper.next=l1;
//将l2中小于l1中结点的插入到l1中来;
while(l1!=null&&l2!=null){
if(l1.val>l2.val){
ListNode next=l2.next;//标明单链表l2的下一个结点;
l2.next=pre.next;
pre.next=l2; //将l2结点插入l1中
l2=next;//?
}
else{
l1=l1.next;
}
pre=pre.next;
}
if(l2!=null){
pre.next=l2;//将比l1中结点大的,未插入l1中的结点插入;
}
return helper.next;
}
public static void main(String[] args) {

}

}

//是有构造一个helper的虚指针的,一般来说改动到链表头的题目就会构造虚表头,l1和l2是第一个结点,不过后来会被改变,往后迭代

原创粉丝点击