Go语言每日一练——链表篇(四)

传送门

牛客面试笔试必刷101题 ----------------合并两个排序的链表

题目以及解析

题目

Go语言每日一练——链表篇(四)_第1张图片

解题代码及解析

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
}

解析:

这题依旧是一道合并链表题,题目比较简单,主要还是体现归并思想,主要还是理解归并思想的应用

你可能感兴趣的:(Go语言每日一题,golang,链表,开发语言,数据结构,算法)