美文网首页
203. 移除链表元素

203. 移除链表元素

作者: 天山童姥张奶奶 | 来源:发表于2020-04-03 15:15 被阅读0次

leetCode地址

输入: 1->2->6->3->4->5->6, val = 6

输出: 1->2->3->4->5

官方思路:
  • 初始化哨兵节点为 ListNode(0) 且设置 sentinel.next = head。
  • 初始化两个指针 curr 和 prev 指向当前节点和前继节点。
  • 当 curr != nullptr:
    比较当前节点和要删除的节点:
    若当前节点就是要删除的节点:则 prev.next = curr.next。
    否则设 prve = curr。
    遍历下一个元素:curr = curr.next。
  • 返回 sentinel.next。
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        if(head == null) return null;
        ListNode newHead = new ListNode(0);
        newHead.next = head;
        ListNode p = newHead;
        while(newHead.next != null){
            if(newHead.next.val == val){
                newHead.next = newHead.next.next;
            }else{
                newHead = newHead.next;
            }
        }
        return p.next;
    }
}

相关文章

网友评论

      本文标题:203. 移除链表元素

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