1.反转链表
//1.单链表
public static Node reverseLinkedList(Node head){
Node next = null;
Node pre = null;
while (head!=null){
next = head.next;
head.next = pre;
pre = head;
head = next;
}
return pre;
}
//2.双链表
public static DoubleNode reverseDoubleList(DoubleNode head){
DoubleNode pre = null;
DoubleNode next = null;
while (head!=null){
next = head.next;
head.next = pre;
head.last = next;
pre = head;
head = next;
}
return pre;
}
2.删除单链表中指定值,并返回头节点。
public static Node delNode(Node head, int value){
//找到第一个不需要删除的节点
while(head!=null){
if(head.value!=value)
break;
head= head.next;
}
Node pre = head;
Node cur = head;
while (cur!=null){
if(cur.value==value)
pre.next=cur.next;
else
pre=cur;
cur= cur.next;
}
return head;
}