• 删除链表中全部值为k的节点


    1. 问题描写叙述

      给定一个单链表,删除当中值为k的全部节点。比如:1263456,删除当中值为6的节点,返回:12345


    2. 方法与思路

      这是一个简单的链表操作题。删除是要考虑的节点所在的位置(头部,中间和尾部),分开处理一下好了。主要步骤例如以下描写叙述:
     

     I. while head>valtarget
          head = head->next
     II. head
           if head=NULL return NULL;
     III. 遍历剩余链表,删除中间和尾部值为k的节点。

      c++代码例如以下:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    
    ListNode* removeElements(ListNode* head, int val) {
            if(head == NULL) return NULL;
            while(head && head->val == val) 
            {
                ListNode *pre = head;
                head = head->next;
                delete pre;
            }
            if(head == NULL) return head;
            ListNode *p = head;
    
            while(p && p->next)
            {
                ListNode *q = p->next;
                if(q->val == val) 
                {
    
                    p->next = q->next;
                    delete q;
                }
                else
                    p = p->next;
    
            }
    
    
            return head;
        }
  • 相关阅读:
    kubernetes增加污点,达到pod是否能在做节点运行
    docker 搭建简易仓库registry
    sed 收集
    kebu之rook-ceph
    docker之harbor仓库注意事项
    docker--Dockerfile-nginx
    mysql 集群方案
    mysql GTID主从配置
    Python File(文件) 方法
    python标准异常
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5362647.html
Copyright © 2020-2023  润新知