题目
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function reverseList(head){
}
code1(头插法)
function reverseList(head) {
var prev = null
var cur = head
var after = null
while (cur) {
after = cur.next
cur.next = prev
prev = cur
cur = after
}
return prev
}
code2(递归)
function reverseList(head) {
if (!head || !head.next) return head
var p = reverseList(head.next)
head.next.next = head
head.next = null
return p
}
网友评论