删除链表指定的所有元素

mac2026-01-22  5

public class Demo2 { //判断链表中key关键字是否存在链表中 public boolean contains(int key) { for (LinkedNode node = head; node != null; node = node.next) { if (node.data == key) { return true; } } return false; } //删除第一次出现关键字key的节点 public void remove(int key) { //空链表 if (head == null) { return; } else if (head.data == key) { head = head.next; return; } LinkedNode prve = searchPrve(key); prve.next = prve.next.next; } //删除所有指定元素 public void removeAll(int key) { if (head == null) { return; } while (head.data == key) { //如果删除元素在链表头部 if (head.next == null) { return; } head = head.next; } LinkedNode prve = searchPrve(key); while (prve != null) { if (prve.next.next == null) { //删除元素在最后 prve.next = null; return; } else { prve.next = prve.next.next; prve = searchPrve(key); } } } }
最新回复(0)