🚩传送门:牛客题目
题目
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
示例 1:
输入:{1,3,5},{2,4,6} 返回值:{1,2,3,4,5,6}
解题思路:二路归并
双指针二路归并,由于合并过程中头结点和其他结点操作不一样,因此为了统一操作先给新头指针一个头节点
我的代码
public class Solution {public ListNode Merge(ListNode list1,ListNode list2) {ListNode list1Head=list1;ListNode list2Head=list2;//1.为了简便操作,new 出一个头节点ListNode NewHead=new ListNode(-1);ListNode NewTail=NewHead;//2.双指针非空,比较插入while(list1Head!=null&&list2Head!=null){if(list1Head.val<list2Head.val){NewTail.next=list1Head;list1Head=list1Head.next;}else{NewTail.next=list2Head;list2Head=list2Head.next;}NewTail=NewTail.next;}//3.2链表空了,直接将剩余1链表插入即可if(list1Head!=null){NewTail.next=list1Head;}//4.1链表空了,直接将剩余2链表插入即可if(list2Head!=null){NewTail.next=list2Head;}//5.抛弃多余的头节点NewHead=NewHead.next;return NewHead;}}
