课程名称:JavaScript版数据结构与算法
课程章节:第5章 数据结构之“链表”
主讲老师:lewis
课程内容:
今天学习的内容包括:
5-8 前端与链表:使用链表指针获取 JSON 的节点值——JavaScript中没有链表,可以使用Object实现。
5-9 链表-章节总结——链表在JavaScript中的使用。
5-10 【勤于思考,夯实学习成果】阶段思考题——实现阶段性思考题。
课程收获:
使用链表指针获取 JSON 的节点值
1、链表可以使用Object实现
2、根据链表找到最终值
const json = {
a: { b: { c: 1 } },
d: { e: 2 },
}
const path = ['a', 'b', 'c']
let p = json
path.forEach(key => {
p = p[key]
})
章节总结
1、JS 中的原型链也是一个链表
2、使用链表指针可以获取 JSON 的节点值
编写一个 instanceOf 方法,可以判断一个变量是否是另一个变量的实例。
1、根据以往学习知识进行编写尝试
2、通过变量的原型链进行判断
const instanceOf = (A,B) => {
let p = A
while(p){
if(p === B.prototype){
return true
}
p = p.__proto__
}
return false
}
let a = 1
let b = Number
console.log(instanceOf(a,b));
console.log(instanceOf(b,a));
回文链表
1、判断单链表是否为回文链表
/**
* @param {ListNode} head
* @return {boolean}
*/
var isPalindrome = function(head) {
const vals = [];
while (head !== null) {
vals.push(head.val);
head = head.next;
}
for (let i = 0, j = vals.length - 1; i < j; ++i, --j) {
if (vals[i] !== vals[j]) {
return false;
}
}
return true;
};
通过对链表的学习,对原型链等有了一定的深入了解,对JavaScript算法有了更大的爱好,希望自己快速将算法学习完,对自己说一句,加油😀~
坚持打卡,坚持学习!明天见💪~