题解 | #合并两个排序的链表#
合并两个排序的链表
https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pHead1 ListNode类 * @param pHead2 ListNode类 * @return ListNode类 */ func Merge(pHead1 *ListNode, pHead2 *ListNode) *ListNode { // 直接返回 if pHead2 == nil { return pHead1 } if pHead1 == nil { return pHead2 } // 记录最小值节点,以及需要返回的节点 minHead := &ListNode{} resHead := minHead // 对比大小,不断修改指向 for pHead1 != nil && pHead2 != nil { if pHead1.Val > pHead2.Val { minHead.Next = pHead2 pHead2 = pHead2.Next } else { minHead.Next = pHead1 pHead1 = pHead1.Next } minHead = minHead.Next } // 拼接剩下的 if pHead1 != nil { minHead.Next = pHead1 } else { minHead.Next = pHead2 } // 遍历完成,返回 return resHead.Next }