美文网首页
删除链表中的元素

删除链表中的元素

作者: zhujiaqqq | 来源:发表于2017-09-21 21:07 被阅读0次

    描述

    删除链表中等于给定值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/

    相关文章

      网友评论

          本文标题:删除链表中的元素

          本文链接:https://www.haomeiwen.com/subject/bkwtextx.html