关闭

[leetcode]Remove Linked List Elements

标签: leetcode链表
131人阅读 评论(0) 收藏 举报
分类:

题目描述如下:

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

链表最基本的操作题,对几个特殊情况分析清楚就好,代码中有注释:

public class Solution {
    public ListNode removeElements(ListNode head, int val) {
    ListNode tmp = head;
    ListNode lastNode = head;
    while(tmp != null){
        if(tmp.val == val){
            if(tmp == head){ // 说明第一个就是要删除的节点
                tmp = head.next;
                lastNode = tmp;
                head = tmp;
                continue;
            }else{
                if(tmp.next != null){
                    lastNode.next = tmp.next;
                    tmp = lastNode.next;
                    continue;
                }else{  // 说明要删除的是最后一个节点
                    lastNode.next = null;
                    tmp = lastNode.next;
                    continue;
                }
          } 
        }
        // 对于不需要操作的节点
        lastNode = tmp;
        tmp = tmp.next;
    }
    return head;
  }
}

题目链接:https://leetcode.com/problems/remove-linked-list-elements/

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20607次
    • 积分:997
    • 等级:
    • 排名:千里之外
    • 原创:80篇
    • 转载:23篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论