LeetCode 21. 合并两个有序链表 golang
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 21. 合并两个有序链表 golang
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
遞歸
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {if nil == l1 {return l2}if nil == l2 {return l1}if l1.Val < l2.Val {l1.Next = mergeTwoLists(l1.Next, l2)return l1} else {l2.Next = mergeTwoLists(l1, l2.Next)return l2} }Me(存在問題)非遞歸版本實現(xiàn)
這個測試用例跑不過,原因沒查出。但本地跑輸出是正確的,邏輯也沒問題
輸入: [-9,3] [5,7] 輸出 [-9,3,7] 預(yù)期結(jié)果 [-9,3,5,7] func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {if l1 == nil {return l2}if l2 == nil {return l1}result := l1r := resultif l1.Val > l2.Val {result = l2l2 = l2.Nextr = result} else {l1 = l1.Nextr = result}for l1 != nil && l2 != nil {if l1.Val < l2.Val {result.Next = l1l1 = l1.Nextresult = result.Next} else {result.Next = l2l2 = l2.Nextresult = result.Next}}if l1 == nil && l2 != nil{for l2 != nil{result.Next = l2l2 = l2.Next}}if l1 != nil && l2 == nil{for l1 != nil{result.Next = l1l1 = l1.Next}}return r }總結(jié)
以上是生活随笔為你收集整理的LeetCode 21. 合并两个有序链表 golang的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工厂对象,工厂方法是什么? 财富值
- 下一篇: 83. 删除排序链表中的重复元素 gol