本文正在参与掘金团队号上线活动,点击 查看大厂春招职位
一、题目描述:
反转一个单链表。
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
二、思路分析:
采用递归的方法,没有什么复杂的地方,注意递归每层都要new一个ListNode,然后把他传进下一层
三、AC代码:
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
const recursion = function(node,previous){
current = new ListNode(node.val,previous)
if(node.next===null){
return current
}else{
return recursion(node.next,current)
}
}
var reverseList = function(head) {
if (!head) return head
return recursion(head,undefined)
};
四、总结:
迭代的方法待补