class Node {
constructor(element, next) {
this.element = element
this.next = next
}
}
class LinkList {
constructor() {
this.head = null
this.size = 0
}
add(index, elemnet) {
if (arguments.length === 1) {
elemnet = index
index = this.size
}
if (index < 0 || index > this.size) throw new Error('报错')
if (index === 0) {
let head = this.head
this.head = new Node(elemnet, head)
} else {
let prevNode = getNode(index - 1)
prevNode.next = new Node(elemnet, prevNode.next)
}
this.size++
}
getNode(index) {
let current = this.head;
for (let i = 0; i < index; i++) {
current = current.next
}
return current
}
get() {
}
remove(index) {
if (index === 0) {
let node = this.head
if (!node) return null
this.size--;
this.head = node.next
return node.element
}
}
reversLinkList() {
const revers = (head) => {
if (head === null || head.next === null) {
return head
}
let newHead = revers(head.next)
head.next.next = head
head.next = null;
return newHead
}
revers(this.head)
return this.head
}
reversLinkList1() {
let head = this.head;
if (head === null || head.next === null) {
return head
}
let newHead = null
while (head != null) {
let temp = head.next
head.next = newHead
newHead = head
head = temp
}
this.head = newHead
return this.head
}
}
export default LinkList