leecode--单链表移除链表元素,奇偶链表
3 月,跳不动了?>>> 移除链表元素 删除链表中等于给定值val的所有节点 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 此问题想着很简单,删除元素必须用到两个节点,一个节点cur用于遍历链表,另一个节点pre表示当前节点的前一个节点。但是还需要注意以下问题: 1)如果需要删除的是链表的头节点该如何处理? 2)如果需要删除的节点是链表中的所有节点如何处理? 3)pre节点和cur节点如何遍历? 一个链表的初始情况: 需要删除的节点是 2 ,第二步节点情况应该是 可以看出上述情况下,pre节点不用移动,而cur节点移向next即可 如果删除的节点是 3 ,第二步的节点情况应该是 此种情况下,pre节点只想cur,而cur指向本身的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 (null ==