美文网首页Leetcode
Leetcode.237.Delete Node in a Li

Leetcode.237.Delete Node in a Li

作者: Jimmy木 | 来源:发表于2019-12-04 12:49 被阅读0次

题目

给定一个单向链表中的一个节点,写一个方法删除该节点。

Input: head = [4,5,1,9], node = 5
Output: [4,1,9]

思路

由于只给出了当前节点,不知道前节点,不能使用常规删除。
将下一节点的值往前移动,然后删除最后一个节点。

void deleteNode(ListNode* node) {
    if (node == nullptr) return;
    ListNode *tmp = node;
    while (node->next != nullptr) {
        node->val = node->next->val;
        tmp = node;
        node = node->next;
    }
    tmp->next = nullptr;
}

总结

看上去好像和常规不一样,拿不到链表的头节点。但可以值修改值,不删除中间节点,删除末尾节点。

相关文章

网友评论

    本文标题:Leetcode.237.Delete Node in a Li

    本文链接:https://www.haomeiwen.com/subject/iuakgctx.html