0
点赞
收藏
分享

微信扫一扫

LeetCode 237. 删除链表中的节点(思维)

请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。

题目数据保证需要删除的节点 不是末尾节点 。

​​https://leetcode-cn.com/problems/delete-node-in-a-linked-list​​

LeetCode 237. 删除链表中的节点(思维)_链表

LeetCode 237. 删除链表中的节点(思维)_c代码_02

解题报告:

这题不能用常规的思路去解,因为没有头指针,所以不能这样去解决。这里是参考了线性表的删除方法,把所有节点的元素值向前移动一个,并把最后一个节点置为null。

AC代码:

/**

* Definition for singly-linked list.

* struct ListNode {

* int val;

* ListNode *next;

* ListNode(int x) : val(x), next(NULL) {}

* };

*/

class Solution {

public:

void deleteNode(ListNode* node) {

ListNode* nxt = node->next;

while(nxt != NULL) {

node->val = nxt->val;

nxt = nxt->next;

if(nxt == NULL) node->next = NULL;

node = node->next;

}



}

};

举报

相关推荐

0 条评论