链表基础
单链表的数据定义为:
function ListNode(val) {
this.val = val;
this.next = null;
}
需求:给定一个数组 比如 [ 2, 5, 9, 10]
构造一个单链表,结果为2 -> 5 -> 9 -> 10
, 但是需要以两种方式去做,
正序遍历构造:
function constructLinkedList(arr) {
let dummy = new ListNode(0)
let node = dummy
for (let i = 0; i < arr.length; i++) {
let cur = new ListNode(arr[i])
node.next =cur
node = node.next
}
// test code
console.log(JSON.stringify(dummy.next))
return dummy.next
}
逆序遍历构造:
function constructLinkedListRevere(arr) {
let node = null
for (let i = arr.length - 1; i >= 0; i--) {
let cur = new ListNode(arr[i])
cur.next = node
node = cur
}
// test code
console.log(JSON.stringify(node))
return node
}