最强解析面试题:合并两个排序的链表

Posted 魏小言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最强解析面试题:合并两个排序的链表相关的知识,希望对你有一定的参考价值。


最强解析面试题:合并两个排序的链表

文章讲解 “ 合并两个排序的链表 ” 经典面试题,包含思路及源码,及解惑!

题目

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

思路

  • 递归算法;依次比较当前node值

代码

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 
    // write code here
    if pHead1 == nil
        return pHead2
    
    if pHead2 == nil
        return pHead1
    
    var head *ListNode
    if pHead1.Val < pHead2.Val
        head = pHead1
        head.Next = Merge(pHead1.Next,pHead2)
    else
        head = pHead2
        head.Next = Merge(pHead1,pHead2.Next)
    
    return head

附录

自负和自大真的是搞笑!

以上是关于最强解析面试题:合并两个排序的链表的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer:面试题17合并两个排序的链表

面试题17 合并两个排序的链表

面试题25:合并两个排序的链表

面试题:合并两个排序的链表

剑指offer-面试题25-合并两个排序的链表-链表

面试题25:合并两个排序的链表