合并两个有序链表

2020-05-05  本文已影响0人  7赢月

题目描述

https://leetcode-cn.com/problems/ugly-number/


package main

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
    var (
        head *ListNode
        now  *ListNode
    )
    if l1 == nil{
        return l2
    }
    if l2 == nil{
        return l1
    }
    if l1.Val >= l2.Val {
        now = l2
        l2 = l2.Next
    } else {
        now = l1
        l1 = l1.Next
    }
    head = now
    for l1 != nil && l2 != nil {
        //var m *ListNode
        if l1.Val >= l2.Val {
            now.Next = l2
            l2 = l2.Next
        } else {
            now.Next = l1
            l1 = l1.Next
        }
        now = now.Next
    }
    if l1 != nil {
        now.Next = l1
    }
    if l2 != nil {
        now.Next = l2
    }
    return head
}

思路

这个是合并K的有序链表的简单版本!前面有做是否是头结点的判断,之后发现完全大可不必,最后直接返回head.Next是不是更好了呢!

上一篇 下一篇

猜你喜欢

热点阅读