您的位置:首页 > 其它

leetcode刷题目 ,总结,记录,备忘206

2015-07-14 19:01 246 查看


leetcode206


Reverse Linked List

Reverse
a singly linked list



这个类型的题目我之前做过一次,那次我是用递归写的,但是这次我用递归写却超时了,,具体方法就是一头栽进链表最下面,然后返回,将每一层节点一个一个钩在后面即可。


由于超时我就老老实实的使用了栈来使用,还是比较简单,入栈再弹栈,不多说了。


/**
 * 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) {
       stack<ListNode*> sl;
       if (head == NULL)
       return NULL;
       while (head)
       {
           sl.push(head);
           head = head->next;
       }
       ListNode * temp = sl.top();
       head = temp;
       sl.pop();
       while (!sl.empty())
       {
           temp->next = sl.top();
           temp = temp->next;
           sl.pop();
       }
       temp->next = NULL;
       return head;
       
    }
};


.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: