首页 > 试题广场 >

访问单个节点的删除

[编程题]访问单个节点的删除
  • 热度指数:17823 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

给定一个单向链表中的某个节点,请删除这个节点,但要求只能访问该节点。若该节点为尾节点,返回false,否则返回true


说明:本题目包含复杂数据结构ListNode,点此查看相关信息

python解法,这oj系统根本不看你删不删,所以一行就能通过。

return True if pNode.next else False
发表于 2017-10-31 15:37:34 回复(1)
思路:正常的删除一个结点思路是,给定一个链表头和一个结点。当访问到指定结点pNode时,即pHead->next 等于指定结点, pHead->next = pNode->next->next
但是现在不能访问到指定结点的前一个结点,那么可以这样做
  • 将当前结点的下一个结点覆盖当前结点,然后删除下一个结点。变相的达到删除指定结点的目的
# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Remove:
    def removeNode(self, pNode):
        if not pNode or not pNode.next:
            return False
        
        pNode.val = pNode.next.val
        pNode.next = pNode.next.next
        
        return True

发表于 2016-08-01 21:07:05 回复(0)

问题信息

难度:
2条回答 29303浏览

热门推荐

通过挑战的用户

查看代码