删除链表中的元素

描述

删除链表中等于给定值val的所有节点。

样例

给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5

实现

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */

public class Solution {
    /*
     * @param head: a ListNode
     * @param val: An integer
     * @return: a ListNode
     */
public ListNode removeElements(ListNode head, int val) {
            // write your code here

     if (head == null) {
                return null;
            }
            while (head.val == val) {
                if (head.next != null) {
                    head = head.next;
                } else {
                    return null;
                } 
            }
            ListNode tmp = head;
            ListNode tmpNext = tmp.next;
            while (tmpNext != null) {
                if (tmpNext.val != val) {
                    tmp = tmpNext;
                    tmpNext = tmp.next;
                } else {
                    tmp.next = tmpNext.next;
                    tmpNext = tmp.next;
                }
            }
            return head;
        }
}

请关注我的个人网站:https://zhujiaqqq.github.io/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容