Reverse Linked List

来源:互联网 发布:apache cxf 下载 编辑:程序博客网 时间:2024/06/02 16:43

题目

原题

Reverse a singly linked list.

思路

递归或者非递归.需要注意的是反转后最后节点的next指向(NULL).

code

/** * 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) {        /// method 1        // if(head == NULL || head->next == NULL) {        //     return head;        // }        // ListNode* tmp;        // ListNode* p = NULL;        // ListNode* p1 = head;        // while(p1 != NULL) {        //     tmp = p1->next;        //     p1->next = p;        //     p = p1;        //     p1 = tmp;        // }        // head = p;        // return head;        /// method 2        if(head == NULL || head->next == NULL) {            return head;        }        ListNode* p = head->next;        ListNode* temp = reverseList(p);        p->next = head;        head->next = NULL;        return temp;    }};
0 0
原创粉丝点击