掘金团队号上线,助你 Offer 临门! 点击 查看详情
前言
第一次参加掘金打卡活动,别的不说 主要是奔着奖励来的。4.12开始为了达到14题小目标 冲冲冲!!!
题目描述
题目链接:反转链表
题目描述我用截图leetcode的为主,所以题目如下图
思路分析
依照题目可以知道,这题考链表,并且要求用迭代(a()=>b()=>c()按顺序执行)和递归(a(a):a方法调用a方法)去实现; 解题思路:新建一个空链表 按顺序遍历的时候把新链表的指针指向值,需要在遍历的过程当中,先将下一个节点保存,然后再操作next指向,不然可能出现指针丢失。 注意点:需求考虑null的情况(采坑了)
AC 代码
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
// 迭代
var reverseList = (first=>{
if(!first){
return null
}
let resultList = null, linkedList = first;
while (linkedList) {
let next = linkedList.next;
linkedList.next = resultList;
resultList = linkedList;
linkedList = next;
}
return resultList;
})
// 递归
var reverseList = (head=>{
if(!head){
return null
}
var linkedList
var gc = (back=>{
if (!back.next) {
linkedList = back
return back
} else {
var node = gc(back.next)
node.next = back
if (head === back) {
back.next = null
return linkedList
} else {
return back
}
}
})
return gc(head)
})
总结
多动手,多思考。第三题算法完成,坚持就是胜利!!!
↓↓↓
→ 算法系列链接 ←
↑↑↑
这里可以点!这里可以点!这里可以点!