Remove Linked List Elements

来源:互联网 发布:伦纳德数据 编辑:程序博客网 时间:2024/04/30 01:28

题目描述

Remove all elements from a linked list of integers that have value val.

Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5

题目出处:https://leetcode.com/problems/remove-linked-list-elements/

解题思路

1 当为空链表时直接退出。
2 处理表头,将表头为val的节点删去。
3 处理每个节点的下一个节点,将值为val的节点删去。

代码

package com.larry.easy;import com.larry.util.ListNode;public class RemoveLinkedListElements {public ListNode removeElements(ListNode head, int val) {if(head == null) return null;//处理空链表//处理首元素则为val的情况while(head != null){if(head.val == val) head = head.next;else break;}if(head == null) return null;else{//处理首元素不为val的情况ListNode tempHead2 = head;while(tempHead2.next != null){if(tempHead2.next.val == val) tempHead2.next = tempHead2.next.next;else tempHead2 =tempHead2.next;}return head;}    }public static void main(String[] args) {ListNode node1 = new ListNode(1);ListNode node2 = new ListNode(2);ListNode node3 = new ListNode(3);ListNode node4 = new ListNode(4);ListNode node5 = new ListNode(5);node1.next = node2;node2.next = node3;node3.next = node4;node4.next = node5;ListNode head = node1;new RemoveLinkedListElements().removeElements(head, 5).print();}}<span style="color:#ff0000;"></span>


0 0
原创粉丝点击