好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java剑指offer之删除链表的节点

1.简述

描述:

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。

1.此题对比原题有改动 2.题目保证链表中节点的值互不相同 3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点

数据范围:

0<=链表节点值<=10000

0<=链表长度<=10000

示例1

输入:

{2,5,1,9},5

返回值:

{2,1,9}

说明:

给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 2 -> 1 -> 9

示例2

输入:

{2,5,1,9},1

返回值:

{2,5,9}

说明:

给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 2 -> 5 -> 9

2.代码实现

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

import java.util.*;

/*

* public class ListNode {

* int val;

* ListNode next = null;

* public ListNode(int val) {

* this.val = val;

* }

* }

*/

public class Solution {

/**

* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

*

*

* @param head ListNode类

* @param val int整型

* @return ListNode类

*/

public ListNode deleteNode (ListNode head, int val) {

ListNode dummy = new ListNode(- 1 );

dummy.next = head;

ListNode node = dummy;

while (node.next!= null ){

if (node.next.val==val){

node.next = node.next.next;

break ;

}

node = node.next;

}

return dummy.next;

}

}

到此这篇关于Java剑指offer之删除链表的节点的文章就介绍到这了,更多相关Java删除链表节点内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://blog.51cto测试数据/u_15488507/5250257

查看更多关于Java剑指offer之删除链表的节点的详细内容...

  阅读:17次