java: Merge-two-sorted-lists

来源:互联网 发布:思科网络架构师 编辑:程序博客网 时间:2024/06/06 11:44

【问题描述】:

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
大致意思:合并两个有序链表,新的链表也有序

public class ListNode{int data;//数据域ListNode next;//指针域//构造方法ListNode(int x){ data=x;}}
//javapublic class MergeList{  public ListNode merge((ListNode list1,ListNode list2){ //创建新的链表,存放list1和list2 ListNode result=new ListNode(0); /*新链表的第一个结点问题,由于一般情况下第一个结点都需要特殊处理,比较实用的解决办法是在第一个结点前增加一个虚拟的头结点(本例中的result),讲实际的第一个结点一般化。最后输出的时候输出这个虚拟结点的下一个结点就OK*/ListNode p=result;//设一个p指针,初始指向result的头节点while(list1!=null||list2!=null){// 考虑两个链表是否为空 //list1为空 if(list1==null){  p.next=list2;  break;}//list2为空 if(list2==null){  p.next=list1;  break;}if(list1.val>list2.val){ p.next=list2; p=p.next;//p指针往下移}else{ p.next=list1; p=p.next;//p指针往下移}p=p.next;}return result.next();}}

这里写图片描述

0 0
原创粉丝点击