[LeetCode] 21. Merge Two Sorted Lists ☆
生活随笔
收集整理的這篇文章主要介紹了
[LeetCode] 21. Merge Two Sorted Lists ☆
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
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.
?
解法:
新建一個(gè)鏈表,依次比較兩個(gè)鏈表的頭元素,把較小的移到新鏈表中,直到有一個(gè)為空,再將另一個(gè)鏈表剩余元素移到新鏈表末尾。
采用循環(huán)的方式,代碼如下:
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/ public class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode res = new ListNode(0);ListNode last = res;while (l1 != null && l2 != null) {if (l1.val < l2.val) {last.next = l1;l1 = l1.next;} else {last.next = l2;l2 = l2.next;}last = last.next;}last.next = (l1 != null) ? l1 : l2;return res.next;} }?
采用遞歸的方式,代碼如下:
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/ public class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if (l1 == null) return l2;if (l2 == null) return l1;ListNode head = l1.val < l2.val ? l1 : l2;ListNode other = l1.val < l2.val ? l2 : l1;head.next = mergeTwoLists(head.next, other);return head;} }或者:
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/ public class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if (l1 == null) return l2;if (l2 == null) return l1;if (l1.val < l2.val) {l1.next = mergeTwoLists(l1.next, l2);return l1;} else {l2.next = mergeTwoLists(l1, l2.next);return l2;}} }?
轉(zhuǎn)載于:https://www.cnblogs.com/strugglion/p/6414195.html
總結(jié)
以上是生活随笔為你收集整理的[LeetCode] 21. Merge Two Sorted Lists ☆的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.5K直屏新物种!王一博换上Redmi
- 下一篇: 扭转国产OLED行业口碑!卢伟冰称1.5