https://leetcode-cn.com/problems/merge-two-sorted-lists/

    1. public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
    2. // 虚拟头节点是链表问题的处理Tip
    3. ListNode dummyHead = new ListNode(-1);
    4. // 直接将虚拟头节点复制,最后返回head.next正好是有数据的开始节点
    5. // 此外还因为last需要向后遍历,需要保存下来头节点的地址。
    6. ListNode last = dummyHead;
    7. // 这里应该是 && ,只要有一方为空了,就退出。
    8. while (l1 != null && l2 != null) {
    9. if (l1.val >= l2.val) {
    10. // 加入l2
    11. last.next = l2;
    12. l2 = l2.next;
    13. } else {
    14. last.next = l1;
    15. l1 = l1.next;
    16. }
    17. last = last.next;
    18. }
    19. // 有一方结束
    20. if (l1 != null) {
    21. last.next = l1;
    22. }
    23. if (l2 != null) {
    24. last.next = l2;
    25. }
    26. return dummyHead.next;
    27. }