牛客: BM4 合并两个排序的链表
文章目录
- 牛客: BM4 合并两个排序的链表
- 题目描述
- 题解思路
- 题解代码
题目描述
题解思路
以链表一为主链表,遍历两条链表
若当前链表二的节点val小于当前链表一的下一个节点val,则将链表链表二的该节点连到链表一的节点的下一个,链表一的当前节点往后跳,链表二的节点往后跳
若当前链表二的节点val大于当前链表一的下一个节点val,链表一的节点往后跳
若链表一的节点先遍历完毕,则将链表二接到链表一的后面
题解代码
package mainimport . "nc_tools"
/** type ListNode struct{* Val int* Next *ListNode* }*//*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param pHead1 ListNode类 * @param pHead2 ListNode类 * @return ListNode类
*/
func Merge( pHead1 *ListNode , pHead2 *ListNode ) (head *ListNode) {// write code hereif pHead1 == nil {return pHead2}if pHead2 == nil {return pHead1}if pHead1.Val > pHead2.Val {head = pHead2pHead2 = pHead2.Nexthead.Next = pHead1} else {head = pHead1}for pHead1.Next != nil && pHead2 != nil {if pHead1.Next.Val > pHead2.Val {tmp := pHead2.NextpHead2.Next = pHead1.NextpHead1.Next = pHead2pHead2 = tmp} else {pHead1 = pHead1.Next}}if pHead2 != nil {pHead1.Next = pHead2}return head
}