把数组转成链表
var head = [1, 2, 3, 4, 5]
function arrayToListNode(arr) {
if (arr.length === 0) return null;
let head = { val: arr[0], next: null }
let pre = head;
for (let i = 1; i < arr.length; i++) {
pre.next = { val: arr[i], next: null }
pre = pre.next
// let node = { val: arr[i], next: null }
// pre.next = node;
// pre = node
}
return head
}
head = arrayToListNode(head)
console.log('head', head)
function arrToListNode (arr) {
let head = new ListNode()
let cur = head
for (let i = 0; i < arr.length; i++) {
let node = new ListNode(arr[i])
cur.next = node
cur = cur.next
}
return head.next
}
var arr = [1, 2, 3, 4]
var res = arrToListNode(arr)
console.log('res111', res)
实例
61
var head = [1,2,3,4,5]
var head = {
val: 1,
next: {
val: 2,
next: {
val: 3,
next: {
val: 4,
next: {
val: 5,
next: null
}
}
}
}
}
链表中的浅拷贝
var head1 = {
val: 1,
next: {
val: 2,
next: {
val: 3,
next: {
val: 4,
next: {
val: 5,
next: null
}
}
}
}
}
var cur1 = head1;
while (cur1.next && cur1.val < 3) {
cur1 = cur1.next // 赋值不会触发
}
//1. 修改属性触发
cur1.next = null
//2. 修改属性触发
// cur1.next = cur1.next.next
console.log('head1', head1);
console.log('cur1', cur1);
等同于
var head1 = {
val: 1,
next: {
val: 2,
next: {
val: 3,
next: {
val: 4,
next: {
val: 5,
next: null
}
}
}
}
}
var cur1 = head1;
var cur2 = cur1;
cur2.next = null
console.log('head1', head1);
console.log('cur1', cur1);
console.log('cur2', cur2);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。