美文网首页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