leetcode解题之21# Merge Two Sorted ListsJava版 递归和非递归实现

    xiaoxiao2021-03-25  141

    21. Merge Two Sorted Lists

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

    // 非递归实现 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode head = new ListNode(0); ListNode cur = head; while (l1 != null && l2 != null) { if (l1.val >= l2.val) { cur.next = l2; l2 = l2.next; } else { cur.next = l1; l1 = l1.next; } cur = cur.next; } if (l1 != null) cur.next = l1; if (l2 != null) cur.next = l2; return head.next; } // 递归实现 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode res = null; if (l1 == null) return l2; if (l2 == null) return l1; if (l1.val <= l2.val) { res = l1; l1.next = mergeTwoLists(l1.next, l2); } else { res = l2; l2.next = mergeTwoLists(l1, l2.next); } return res; }

    转载请注明原文地址: https://ju.6miu.com/read-5161.html

    最新回复(0)