Remove Linked List Elements - 移除链表中的指定元素

  • 题目
    Remove all elements from a linked list of integers that have value val.
    Example
    Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
    Return: 1 --> 2 --> 3 --> 4 --> 5

  • 分析
    初步判断可以发现有两种情况的删除,一种是第一个节点的删除,一种是中间节点的删除,为了保持统一,让算法保持简洁的设计,所以手动添加一个新的节点辅助作为第一个节点

  • 代码

    ListNode* removeElements(ListNode* head, int val) {
        ListNode *newNode = new ListNode(-1);
        newNode->next = head;
        ListNode *currentNode = head;
        ListNode *previousNode = newNode;
        while (currentNode != NULL) {
            if (currentNode->val == val) {
                currentNode = currentNode->next;
                previousNode->next = currentNode;
            } else {
                previousNode = currentNode;
                currentNode = currentNode->next;
            }
        }
        return newNode->next;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容