题解
1:55才把git总结好,做个水题睡觉了,,愿星光不负赶路人吧,两种实现方式
代码
package main type ListNode struct { Val int Next *ListNode } func mergeTwoLists1(l1 *ListNode, l2 *ListNode) *ListNode { if l1 == nil { return l2 } if l2 == nil { return l1 } var head *ListNode if l1.Val > l2.Val { head = l2 head.Next = mergeTwoLists(l1, l2.Next) } else { head = l1 head.Next = mergeTwoLists(l1.Next, l2) } return head } func mergeTwoLists2(l1 *ListNode, l2 *ListNode) *ListNode { dummy := &ListNode{} head := dummy for l1 != nil && l2 != nil { if l1.Val < l2.Val { head.Next = l1 l1 = l1.Next } else { head.Next = l2 l2 = l2.Next } head = head.Next } if l1 != nil { head.Next = l1 l1 = l1.Next head = head.Next } else if l2 != nil { head.Next = l2 l2 = l2.Next head = head.Next } return dummy.Next } func main() { }