• 合并两个排序的链表
    • 题目
    • 解题思路

    合并两个排序的链表

    题目

    牛客网

    输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

    解题思路

    1. 双指针指向两个链表
    2. 循环选取最小值,加入结果集
    1. public ListNode Merge(ListNode list1, ListNode list2) {
    2. ListNode head = new ListNode(-1);
    3. ListNode cursor = head;
    4. while (list1 != null || list2 != null) {
    5. if (list1 == null) {
    6. while (list2 != null) {
    7. cursor.next = list2;
    8. cursor = cursor.next;
    9. list2 = list2.next;
    10. }
    11. continue;
    12. }
    13. if (list2 == null) {
    14. while (list1 != null) {
    15. cursor.next = list1;
    16. cursor = cursor.next;
    17. list1 = list1.next;
    18. }
    19. continue;
    20. }
    21. if (list1.val < list2.val) {
    22. cursor.next = list1;
    23. cursor = cursor.next;
    24. list1 = list1.next;
    25. } else {
    26. cursor.next = list2;
    27. cursor = cursor.next;
    28. list2 = list2.next;
    29. }
    30. }
    31. return head.next;
    32. }