样例
1 2 3 4 5 6 7 8 9 10 ,num=3 ,结果:1 2 4 5 6 7 8 9 10
java代码
/**
* @Description:在单链表中删除指定值的节点
* @Author: lizhouwei
* @CreateDate: 2018/4/7 10:33
* @Modify by:
* @ModifyDate:
*/
public class Chapter2_14 {
public Node removeNode(Node head, int num) {
if (head == null) {
return null;
}
//当要删除的节点头部连续的几个的话,则都删除
while (head != null && head.vlaue == num) {
head = head.next;
}
Node pre = head;
Node cur = head.next;
while (cur != null) {
if (cur.vlaue == num) {
pre.next = cur.next;
} else {
pre = cur;
}
cur = cur.next;
}
return head;
}
//测试
public static void main(String[] args) {
Chapter2_14 chapter = new Chapter2_14();
Link link = new Link();
//构造链表
for (int i = 10; i > 0; i--) {
link.add(i);
}
Link.printLink(link.head);
Node head = chapter.removeNode(link.head, 3);
Link.printLink(head);
}
}