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

这个题也做过,但是也忘了。

21.合并两个有序链表

23.合并K个排序链表

在这里插入图片描述

Python题解

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    # 返回合并后列表
    def Merge(self, pHead1, pHead2):
        if not pHead1:
            return pHead2
        elif not pHead2:
            return pHead1
        mergedHead = None
        if pHead1.val < pHead2.val:
            mergedHead = pHead1
            mergedHead.next = self.Merge(pHead1.next, pHead2)
        else:
            mergedHead = pHead2
            mergedHead.next = self.Merge(pHead1, pHead2.next)
        return mergedHead

考点

  • 考查分析问题的能力。解决这个问题需要大量的指针操作,如果没有透彻的分析问题形成清晰的思路,则很难写出正确的代码;
  • 考察能不能写出鲁棒的代码。由于有大量的指针操作,稍有不慎就会在代码中遗留很多与鲁棒性相关的隐患。

你可能感兴趣的:(朱滕威的面试之路)