1.链表结构
在Java中的链表结构:
public class ListNode {
private int data;
private ListNode next;
public ListNode(int data, ListNode next) {
this.data = data;
this.next = next;
}
public ListNode() {
}
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public ListNode getNext() {
return next;
}
public void setNext(ListNode next) {
this.next = next;
}
}
2.插入元素
public ListNode insertNode(ListNode head,ListNode newNode,int pos){
if (head == null)
return newNode;
//插入的位置是表头
if (pos == 1){
newNode.next = head;
return newNode;
}
//在链表中间插入
ListNode node = head;
for (int i = 1;i < pos;i++){
node = node.next;
}
newNode.next = node.next;
node.next = newNode;
//在链表尾部插入节点
if (pos == getLength(head)){
ListNode cur = head;
while (cur.next != null){
cur = cur.next;
}
cur.next = newNode;
}
return head;
}
3.删除元素
public ListNode removeNode(ListNode head,int pos){
//删除表头元素
if (pos == 1){
return head.next;
}
//删除链表尾部元素
if (pos == getLength(head)){
ListNode node = head;
while (node.next.next != null){
node = node.next;
}
node.next = null;
}
if (head == null)
return null;
ListNode cur = head;
for (int i = 1;i < pos;i++){
cur = cur.next;
}
cur.next = cur.next.next;
return head;
}