2、源码单向链表删除和插入节点一定要注意断链问题,而断链问题的本质就是单向链表只有单向的指针next,当要把这个next赋值时,就要注意这个next所指向的节点是否需要,需要就要用指针保存起来。在Java中就需要用对象保存起来。
public ListNode deleteNode(ListNode head, int val) {
//被删除的可能是头节点,如果不是就返回head。
if(head == null)
return null;
if (head.val == val)
return head.next;
ListNode point = head;
while (point.next != null) {
if(point.next.val == val){
point.next = point.next.next;
break;
}
point = point.next;
}
return head;
}
//Definition for singly-linked list.
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
总结
单向链表是数据结构的基础,在对其做操作时一定要保存它原本的特性。主要就是断链问题。



