博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(LeetCode 203)Remove Linked List Elements
阅读量:5039 次
发布时间:2019-06-12

本文共 1422 字,大约阅读时间需要 4 分钟。

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

题目要求:

删除链表中包含val的元素结点

解题思路:

重点在于找到第一个非val的头结点,然后遍历链表,依次删除值为val的结点,最后返回头结点

方法:

1、常规方法:

找到第一个非val的头结点,如果头结点非NULL,遍历链表,依次删除值为val的结点,最后返回头结点。

2、递归方法:

代码:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* removeElements(ListNode* head, int val) {        while(head!=NULL && head->val==val)            head=head->next;        if(head==NULL)            return head;        // At least one node that does not contain val        ListNode* cur;        cur=head;        while(cur->next!=NULL){            if(cur->next->val==val)                cur->next=cur->next->next;            else                cur=cur->next;        }        return head;    }};
/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* removeElements(ListNode* head, int val) {        if(head && head->val==val)             head=removeElements(head->next,val);        if(head && head->next)             head->next=removeElements(head->next,val);        return head;    }};

转载于:https://www.cnblogs.com/AndyJee/p/4461854.html

你可能感兴趣的文章
转-设置/使用反向代理服务器
查看>>
转-editplus 配置
查看>>
[OI模拟赛]2017.8.24 Day5
查看>>
<Effective C++>读书摘要--Implementations<一>
查看>>
linux route命令学习
查看>>
java中表示二进制、八进制、十进制、十六进制,double、float、整型
查看>>
小技巧--字符串输入从a[1]开始
查看>>
[论文笔记] CUDA Cuts: Fast Graph Cuts on the GPU
查看>>
重新配置dbconsole的步骤
查看>>
Library Publication 时遇到 "more than one library with package name" 错误的解决方法
查看>>
MySQL字段操作与数据处理
查看>>
SQL左右连接中的on and和on where的区别
查看>>
从Oracle9i RMAN全库备份迁移到 Oracle10g
查看>>
ps基础入门快捷方法总结
查看>>
摸索出来的文字居中 定位后怎么都不居中,,
查看>>
数据库索引
查看>>
VS 自带Git使用教程
查看>>
iOS ReactiveCocoa简单使用笔记
查看>>
[TCP/IP]TCP的三次握手和四次挥手
查看>>
python中交换两个值的方法
查看>>