1.删除链表的奇数节点
/*
* 删除奇数节点
*/
public static ListNode deleteOddNode(ListNode head) {
if (head == null)
return null;
ListNode dump = new ListNode(-1, null);
dump.next = head;
ListNode pre = dump;
int len = length(head);
if (len % 2 == 0) {
while (pre.next != null && pre.next.next != null) {
pre.next = pre.next.next;
pre = pre.next;
}
} else {
while (pre.next != null && pre.next.next != null) {
pre.next = pre.next.next;
pre = pre.next;
if (pre.next != null && pre.next.next == null) {
pre.next = null;
}
}
}
return dump.next;
}
2.删除链表的偶数节点
/*
* 删除链表的偶数节点
*/
public static ListNode deleteEvenNode(ListNode head) {
if (head == null)
return null;
int len = length(head);
ListNode odd = head;
if (len % 2 == 0) {
while (odd.next != null && odd.next.next != null) {
odd.next = odd.next.next;
odd = odd.next;
if (odd.next != null && odd.next.next == null)
odd.next = null;
}
} else {
while (odd.next != null && odd.next.next != null) {
odd.next = odd.next.next;
odd = odd.next;
}
}
return head;
}