单链表之在不知道头指针的情况下删除指定结点

满足的情况:要删除的结点不是尾结点

package me.wcy.j2se.datastructure;

/**
 * 在不知道头指针的情况下删除指定结点
 * 
 * @author wcy
 *
 */
public class DeleteNode {

	public static void main(String[] args) {
		ListNode node5 = new ListNode(5);
		ListNode node4 = new ListNode(4, node5);
		ListNode node3 = new ListNode(3, node4);
		ListNode node2 = new ListNode(2, node3);
		ListNode head = new ListNode(1, node2);

		System.out.println(head.toString());
		deleteNode(node3);
		System.out.println(head.toString());
	}

	private static boolean deleteNode(ListNode n) {
		if (n == null || n.next == null) {
			return false;
		}
		n.value = n.next.value;
		n.next = n.next.next;
		return true;
	}

}

输出:

1->2->3->4->5

1->2->4->5


你可能感兴趣的:(数据结构与算法)