/**
* @author fangjie
* @Description: ${todo}
* @date 2019/5/16 14:37
*/
public class LinkedTest {
static class Node {
public int data;
public Node nextNode;
public Node() {
}
public Node(int data, Node nextNode) {
this.data = data;
this.nextNode = nextNode;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("{");
sb.append("\"data\":")
.append(data);
sb.append(",\"nextNode\":")
.append(nextNode);
sb.append('}');
return sb.toString();
}
}
static Node head;
public static void main(String[] args) {
Node last = new Node(4, null);
Node three = new Node(3, last);
Node second = new Node(2, three);
head = new Node(1, second);
System.out.println(head);
System.out.println(nodeLength());
// System.out.println(findNode(2));
// insertNode(head, new Node(5, null), null);
// insertNode(new Node(5, null), 2);
// System.out.println(head);
deleteNode(4);
System.out.println(head);
}
public static Node findNode(int index) {
int linkIndex = 1;
Node headNode = head;
Node node = headNode;
while (linkIndex < index) {
node = headNode.nextNode;
linkIndex++;
}
return node;
}
public static void insertNode(Node newNode, Integer index) {
Node linkedTemp = head;
if (index == null) {
while (linkedTemp.nextNode != null) {
linkedTemp = linkedTemp.nextNode;
}
linkedTemp.nextNode = newNode;
} else {
int linkIndex = 1;
while (linkedTemp.nextNode != null) {
if (index == linkIndex) {
newNode.nextNode = linkedTemp.nextNode;
linkedTemp.nextNode = newNode;
}
linkIndex++;
linkedTemp = linkedTemp.nextNode;
}
}
}
public static int nodeLength() {
int length = 0;
Node linkedTemp = head;
while (linkedTemp != null) {
length++;
linkedTemp = linkedTemp.nextNode;
}
return length;
}
public static void deleteNode(Integer index) {
int linkIndex = 1;
if (index == linkIndex) {
head = head.nextNode;
} else if (index == nodeLength()) {
Node linkedTemp = head;
while (linkedTemp.nextNode != null) {
if (linkedTemp.nextNode.nextNode == null) {
linkedTemp.nextNode = null;
break;
}
linkedTemp = linkedTemp.nextNode;
}
} else {
Node linkedTemp = head;
while (linkedTemp.nextNode != null) {
if (linkIndex == (index - 1)) {
linkedTemp.nextNode = linkedTemp.nextNode.nextNode;
}
linkIndex++;
linkedTemp = linkedTemp.nextNode;
}
}
}
}
转载于:https://my.oschina.net/u/1161660/blog/3050425