如何反转一个单链表
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
反转链表有迭代和递归两种方式,在这我先放上迭代的方式,思路是先创建一个空的头结点指向原来的链表头,然后遍历链表,把当前链表插入到空的头结点后,代码如下:
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
if(!head||!head.next){
return head;
}
var f=head.next;
var s=head;
var dummy=new ListNode();
dummy.next=head;
while(f){
s.next=f.next;
f.next=dummy.next;
dummy.next=f;
f=s.next;
}
return dummy.next;
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论