206. Reverse Linked List

来源:互联网 发布:淘宝模特兼职的骗局 编辑:程序博客网 时间:2024/05/16 10:28

题目

Reverse a singly linked list.

click to show more hints.

Subscribe to see which companies asked this question


源码

JavaScript

/** * 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== null) return null;    if(head.next==null) return head;    var p=head.next;    var n=reverseList(p);    head.next=null;    p.next=head;    return n;};

c++:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* reverseList(ListNode* head) {        if(head == NULL || head->next == NULL)            return head;        else if(head->next->next == NULL)        {            ListNode* newhead = head->next;            newhead->next = head;            head->next = NULL;            return newhead;        }        else        {            ListNode* pre = head;            ListNode* cur = pre->next;            pre->next = NULL;            ListNode* post = cur->next;            while(post != NULL)            {                cur->next = pre;                pre = cur;                cur = post;                post = post->next;            }            cur->next = pre;            return cur;        }    }};
0 0