头插
1)如果要插入的数据没有结点,先给他装入一个节点中。
Node node=new Node( );
node value=0;
2)让原来的第一个结点成为新结点的下一个结点。
node.next=head;
3)更新最新的第一个结点为新结点。
head=node;
遍历所有结点
Node cur=head;
while (cur != null){
System.out.println ( cur.val );
cur=cur.next;
}
尾插
1)空链表的处理
让新的结点成为第一个结点。
2)非空链表的处理
2.1如果没有在结点中,找到结点,让新的结点的next = null;
Node node = new Node ( val );
2.2找到倒数第一个结点(子问题)
找到 . next= null的结点
Node last = head ;
while(lasat.next!=null){
last=last.nest;
} //last就是最后一个结点
2.3让原来的倒数第一个结点的下一个为新的结点
last.nest=node;
private static Node pushBack(Node head, int val) {
Node node = new Node(val);
if (head == null) {
return node;
} else {
Node last = head;
while (last.next != null) {
last = last.next;
}
last.next = node;
return head;
}
}