「这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战」
题目:交换链表中的节点
分析
- 创建一个数组,将链表节点放入数组中
- 通过索引,将数组中的节点交换 注意:
- k是从1开始的,所以引用值为k-1;
- 数组添加不要用push,push的性能会比较差;
var swapNodes = function (head, k) {
let arr = [];
let i = 0;
for (let k = head; k != null; k = k.next) {
arr[i++] = k;
}
const rest = arr.length - k;
let temp = arr[rest].val;
arr[rest].val = arr[k - 1].val;
arr[k - 1].val = temp;
return head;
};
总结
通过数组的方式存储节点,可以解决所有关于链表交换的问题。