剑指offer25——合并两个有序链表
题目描述:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
解题思路:双指针
分别指向两个链表的头,比较大小即可。
问题:如何合并?
建立伪头节点temp,节点cur指向temp,将比较后的节点插入到cur后,最后将不为null的链表中剩余节点添加到cur之后即可。
public ListNode mergeTwoList(ListNode l1, ListNode l2) { ListNode temp = new ListNode(0); ListNode cur = temp; while (l1 != null && l2 != null) { if (l1.val >= l2.val) { cur.next = l2; l2 = l2.next; cur = cur.next; } else { cur.next = l1; l1 = l1.next; cur = cur.next; } } cur.next = l1 != null ? l1 : l2; return temp.next; }
学习的博客多用于在笔记中,防止笔记过于臃肿,所以将样例及运行结果放在博客中,后以超链接的形式记录在笔记中,所以有些博文过于单薄。如果有小伙伴遇到问题欢迎评论,看到就会回复,学渣一枚,加油努力。