在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 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. Example: Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * public var val: Int 5 * public var next: ListNode? 6 * public init(_ val: Int) { 7 * self.val = val 8 * self.next = nil 9 * } 10 * } 11 */ 12 class Solution { 13 func mergeTwoLists(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? { 14 //如果一个链表为空,则直接返回另一个 15 if l1==nil{return l2} 16 if l2==nil{return l1} 17 //判断链表大小,将小的链表连接到大的链表 18 //使用递归,效率最高 19 if l1!.val > l2!.val 20 { 21 //链表1大于链表2 22 l2?.next=mergeTwoLists( l2?.next,l1) 23 return l2 24 } 25 else 26 { 27 //链表2大于链表1 28 l1?.next=mergeTwoLists(l1?.next,l2) 29 return l1 30 } 31 } 32 } |
请发表评论