zoukankan      html  css  js  c++  java
  • leetcode 203

    struct ListNode* removeElements(struct ListNode* head, int val) 
    {
        struct ListNode * tmp = (struct  ListNode *)malloc(sizeof(struct ListNode));
        struct ListNode * pre = tmp;
        pre->next = head;
        while(head != NULL)
        { 
            if(head->val == val) { 
                head= head->next;
                pre->next = head;
            }else{
                head = head->next;
                pre = pre->next;
            } 
        } 
        return tmp->next;
    }

    基本思路:

    在删某个节点的时候需要修改该节点前面节点的next指针,所以需要有一个pre指针

    另外需要有个节点来保存节点最初的位置 。

    struct ListNode* removeElements(struct ListNode* head, int val)
    {
        struct ListNode * tmp = (struct  ListNode *)malloc(sizeof(struct ListNode));
        struct ListNode * pre = tmp;
        pre->next = head;
        while(head != NULL)
        {
            if(head->val == val) {
                head= head->next;
                pre->next = head;
            }else{
                head = head->next;
                pre = pre->next;
            }
        }
        return tmp->next;
    }

  • 相关阅读:
    自适应高度的 文本框
    点击小图片遮罩显示大图片
    C++中的声明与定义
    LeetCode_Bit Manipulation
    “纯”面向对象
    指针和引用
    new和delete用法小结
    C++中的变量属性小结
    C++的一些黑暗料理
    Python中的字典和集合
  • 原文地址:https://www.cnblogs.com/cdwodm/p/5164700.html
Copyright © 2011-2022 走看看