合并两个单链表 java

本文介绍如何在Java中合并两个已定义的单链表。通过实例代码,详细阐述了合并过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

main函数里面写了定义的两个链表,可以直接跑

//结构体
class  ListNode {

	private int Data;
	ListNode Next;
	
    ListNode(int i){

    	this.Data=i;
    	this.Next=null;
    }

	public int getData() {
		return Data;
	}

	public void setData(int data) {
		this.Data = data;
	}
    
};




public class mergeList {
	
	//打印链表
	private static void printList(ListNode list1) {
		if(list1==null||list1.Next==null) {
			return ;
		}
		while(list1!=null) {
			System.out.println(list1.getData());
			list1=list1.Next;
		}
	}
	
	//连接两个链表
	static ListNode Merge( ListNode L1, ListNode L2 ){
		ListNode L11=L1;
		ListNode L22=L2;
		ListNode L33= new ListNode(0);
		ListNode L3= new ListNode(0);  
		int data; 
		L33=L3;
		
		  while(L11!=null&&L2!=null){
		    if(L11.getData()<=L22.getData()){
		    	data=L11.getData();		    
		        L3.setData(data);
		        L11=L11.Next;
		    }
		    else{
		    	data=L22.getData();
		    	L3.setData(data);
			    L22=L22.Next;
		    }
		    L3.Next=  new ListNode(0);  
		    L3=L3.Next;
		  }
		  
		  if(L11==null) {
			  L3.setData(L22.getData());
			  L3.Next=L22.Next;
		  }
		  else {
			  L3.setData(L11.getData());
			  L3.Next=L11.Next;
		  }

		  return L33;
		}
		
	public static void main(String[] args) {
		
		//List n1
		ListNode n1= new ListNode(1);
		ListNode n2= new ListNode(3);
		ListNode n3= new ListNode(5);		
		n2.Next=n3;
		n1.Next=n2;
		
		//List m1
		ListNode m1= new ListNode(2);
		ListNode m2= new ListNode(4);
		ListNode m3= new ListNode(8);	
		ListNode m4= new ListNode(10);	
		m3.Next=m4;
		m2.Next=m3;
		m1.Next=m2;
		
		printList(Merge(n1,m1));
	}


}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值