4-5 Python数据结构常考题之链表

Posted WinvenChang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4-5 Python数据结构常考题之链表相关的知识,希望对你有一定的参考价值。

一、链表

链表涉及到指针操作较为复杂,容易出错,经常用用考题
1.熟悉链表的定义和常见操作
2.常考题:删除一个链表节点
3.常考题:合并两个有序链表

# leetcode第237号题目:删除一个链表节点
class Solution:
	def deleteNode(self, node):
		next_node = node.next
		after_next_node = node.next.next
		node.val = next_node.val
		node.next = after_next_node

下图分析:
在这里插入图片描述

# leetcode第21号题目:合并两个有序链表
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        root = ListNode(None)
        cur = root
        while l1 and l2:
            if l1.val < l2.val:
                node = ListNode(l1.val)
                l1 = l1.next
            else:
                node = ListNode(l2.val)
                l2 = l2.next
            cur.next = node
            cur = node 

        # l1 或者 l2 可能还有剩余的值
        cur.next = l1 or l2
        return root.next
二、多写多练

打开相关的题目,多做一些练习
1.一般可能一次很难写对
2.尝试自己先思考,先按照自己的方式编写代码,提交后发现问题
3.如果实在没有思路或者想参考别人的思路可以搜题解

以上是关于4-5 Python数据结构常考题之链表的主要内容,如果未能解决你的问题,请参考以下文章

链表面试-删除链表中重复的节点(常考题)

4-8 Python数据结构常考题之堆

数据结构之链表+常见面试题

数据结构与算法之链表

链表面试-链表分割(常考题)

数据结构之链表OJ练习检验你的链表水平是否合格