链表-移除链表元素

点击查看代码
var removeElements = function(head, val) {
    var dummyNode = new ListNode(-1); // 设置一个虚拟头节点
    dummyNode.next = head; 
    var prev = dummyNode; // prev记录当前节点的前一个节点
    while(prev.next) { // 从head开始遍历链表
        if(prev.next.val === val) { // 如果当前节点的值等于val
            prev.next = prev.next.next // 跳过当前的节点
        } else {
            prev = prev.next // 如果不等于,继续遍历链表
        }
    }
    return dummyNode.next; // 返回头节点
};
最核心的点在于创建虚拟头节点,如果不创建虚拟头节点就会导致我们必须分类进行讨论,而有了这个节点我们就可以不进行分类讨论使用统一的while循环处理
posted @ 2023-06-08 20:46  useeee  阅读(3)  评论(0编辑  收藏  举报