题目
合并两个有序链表
问题:
将两个有序链表合并为一个新的有序链表并返回. 新链表是通过拼接给定的两个链表的所有节点组成的.
示例:
输入: 1->2->4, 1->3->4
输出: 1->1->2->3->4->4
代码:
- /**
- public class SingNode {
- public var value : Int
- public var nextNode: SingNode?
- public init(value:Int) {
- self.value = value
- }
- }
- **/
- func merchgeTwoList(_ l1:SingNode?, _ l2:SingNode?) -> SingNode? {
- if l1 == nil {
- return l2
- }
- if l2 == nil {
- return l1
- }
- let dummy = SingNode.init(value: 0)
- var tempNode = dummy
- var L1 = l1
- var L2 = l2
- while L1 != nil && L2 != nil {
- if L1!.value < L2!.value {
- tempNode.nextNode = L1
- L1 = L1?.nextNode
- } else {
- tempNode.nextNode = L2
- L2 = L2?.nextNode
- }
- tempNode = tempNode.nextNode!
- }
- tempNode.nextNode = L1 ?? L2
- return dummy.nextNode
- }
来源: http://www.jianshu.com/p/44210f2de077