Leetcode

Leetcode.237.Delete Node in a Li

2019-12-04  本文已影响0人  Jimmy木

题目

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

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;
}

总结

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

上一篇下一篇

猜你喜欢

热点阅读