描述
输入一个链表,反转链表后,输出新链表的表头。
示例
输入:
{1,2,3}
返回值:
{3,2,1}
JS代码
迭代
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function ReverseList(pHead)
{
// write code here
var p1=pHead
var p2=null
while(p1){
const tmp=p1.next
p1.next=p2
p2=p1
p1=tmp
}
return p2
}
module.exports = {
ReverseList : ReverseList
};
递归
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
if(head==null||head.next==null) return head
const p=reverseList(head.next)
head.next.next=head
head.next=null//断开原来的链接
return p
};