合并排序的链表 17
总结
? ?
递归
? ?
比较两个链表当前节点的大小,将小的放入结果链表中
? ?
递归基石节点为空,返回另一个链表
? ?
package mergeSortedList17;
? ?
public class MergeSortedList17 {
static void printList(ListNode headNode){
if (headNode.nextNode==null) {
System.out.println(headNode.data);
}else {
? ?
System.out.print(headNode.data+"-->");
}
while (headNode.nextNode!=null) {
headNode=headNode.nextNode;
if (headNode.nextNode==null) {
System.out.println(headNode.data);
}else {
? ?
System.out.print(headNode.data+"-->");
}
}
? ?
}
public static void main(String[] args) {
ListNode head1=new ListNode();
head1.data=1;
ListNode l11=new ListNode();
l11.data=2;
? ?
head1.nextNode=l11;
l11.nextNode=null;
? ?
ListNode head2=new ListNode();
head2.data=2;
ListNode l21=new ListNode();
l21.data=3;
? ?
head2.nextNode=l21;
l21.nextNode=null;
? ?
ListNode resultNode=merge(head1, head2);
printList(resultNode);
}
static ListNode merge(ListNode head1,ListNode head2){
if (head1==null) {
return head2;
}else if (head2==null) {
return head1;
}
ListNode resultListHead=null;
if (head1.data<head2.data) {
resultListHead=head1;
resultListHead.nextNode=merge(head1.nextNode,head2);
}else {
resultListHead=head2;
resultListHead.nextNode=merge(head1, head2.nextNode);
}
return resultListHead;
? ?
? ?
}
}
class ListNode{
int data;
ListNode nextNode;
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。