Day1 删除链表的节点【链表】

题目:
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。

思路:
删除节点A==让节点A的上一个节点 指向节点A的下一个节点
考虑到要删除的节点可能是头节点,我们新建一个ListNode节点beforehead,beforehead.next指向头节点head,以防找不到头节点。

代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    def deleteNode(self, head: ListNode, val: int) -> ListNode:
        p=beforehead=ListNode(0)#新建结点beforehead,p是遍历指针
        beforehead.next=head
        while p:
            if p.next.val==val:#p.next结点就是要删除的结点
                p.next=p.next.next#让p的下一个指针,跳过p.next,直接指向p.next.next,实现删除结点的效果
                return beforehead.next#返回头结点
            else:#如果当前结点非 要删除结点,继续遍历
                p=p.next

猜你喜欢

转载自blog.csdn.net/weixin_47128888/article/details/112431541