合并两个排序的链表
描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
示例1
输入:
{1,3,5},{2,4,6}
复制
返回值:
{1,2,3,4,5,6}
解题思路
1. 题目给出两个链表
2. 初始化一个新的链表
3.然后进行循环遍历比较,直到两个链表为空
4. 在循环比较的时候,还需要进行新链表的添加
代码如下
// public class ListNode {
// int val;
// ListNode next = null;
// ListNode(int val) {
// this.val = val;
// }
// }
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
//初始化一个头结点,并创建一个新的链表,将头结点赋值给他
ListNode head = new ListNode(0);
ListNode newList = head;
//开始比较
while(list1 != null && list2 != null){
if (list1.val > list2.val){
newList.next = list2;
list2 = list2.next;
}else{
newList.next = list1;
//移动指向
list1 = list1.next;
}
newList = newList.next;
}
//如果list1和list2的长度不一样
if (list1 != null){
newList.next = list1;
}
else{
newList.next = list2;
}
return head.next;
}
}