Go语言每日一练——链表篇(四)
传送门
牛客面试笔试必刷101题 ----------------合并两个排序的链表
题目以及解析
题目
解题代码及解析
package main
import _"fmt"
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 {
head:=&ListNode{}
dump:=head
for pHead1!=nil||pHead2!=nil{
if( pHead1!=nil&&pHead2!=nil){
if pHead1.Val < pHead2.Val {
head.Next = pHead1
pHead1 = pHead1.Next
} else {
head.Next = pHead2
pHead2 = pHead2.Next
}
}else if(pHead1!=nil){
head.Next = pHead1
pHead1 = pHead1.Next
}else{
head.Next = pHead2
pHead2 = pHead2.Next
}
head=head.Next
}
return dump.Next
}
解析:
这题依旧是一道合并链表题,题目比较简单,主要还是体现归并思想,主要还是理解归并思想的应用