废话不多说,直接上代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<script>
function LinkList() {
var Node = function (element) {
this.element = element;
this.next = null;
};
var head = null; //头节点
var prev = null; //指向前一个节点
var length = 0;
this.append = function (element) {
let node = new Node(element),
current;
if (head == null) {
head = node;
} else {
current = head;
prev = this; //这里this指向实例
while (current != null && current.element <= node.element) { //当前节点不为空和当前节点值小于新节点值
prev = current;
current = current.next;
}
node.next = current;
prev.next = node;
head = (head == this.next) ? head : this.next; // 当有比头节点还要小的元素时,头指向插入新节点的链表的第一个个节点
}
};
this.traversal = function () {
let current = head;
while (current) {
console.log(current.element);
current = current.next;
}
}
}
let list = new LinkList();
list.append(9);
list.append(7);
list.append(8);
list.append(10);
list.append(11);
list.append(88);
list.append(100);
list.append(16);
list.append(13);
list.append(14);
list.append(15);
list.append(10);
list.append(11);
list.append(99);
list.append(16);
list.traversal();
</script>
</body>
</html>