算法题:
- 链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/
题目描述及示例
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。输入:head = [1,2,3,4]输出:[2,1,4,3]
解题
var swapPairs = function(head) {let VirtualHeadNode = new ListNode(0)VirtualHeadNode.next = headlet tmp = VirtualHeadNodewhile (tmp.next !==null && tmp.next.next !==null) {const node1 = tmp.nextconst node2 = tmp.next.nexttmp.next = node2node1.next = node2.nextnode2.next = node1tmp = node1}return VirtualHeadNode.next};
遇到的问题
链接:https://bigfrontend.dev/zh/problem/implement-your-own-Object-create
- 题目
- Object.create() 可以用来创建新的对象。
- 你能实现一个myObjectCreate()来实现(大概)相同的逻辑吗 ?
- 注意
- Object.create的第二个参数不用实现,忽略即可。
- 如果传入的不是object,请throw error。 (为什么?)
- 请不要直接使用Object.create() 和 Object.setPrototypeOf()
- 解题
function myObjectCreate(proto) {// your code hereif (typeof proto !== 'object' || proto === null) throw new Error('');const obj = {};obj.__proto__ = proto;return obj;}
