数据结构与算法面试程序员

数据结构面试 之 单链表逆序 附图解

2017-03-21  本文已影响133人  Linux后端研发工程实践

1.算法概述

遍历链表,并在遍历的过程中修改当前节点cur的next指针,使当前节点cur的next指针指向当前节点的前驱节点pre,遍历完之后pre指针就是逆序后链表的头指针。

2.图解

3.代码实现

/**
 * 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) {
        ListNode * pre = NULL;
        ListNode * cur = head;
        while (head)
        {
            head = head->next;
            cur->next = pre;
            pre = cur;
            cur = head;
        }
        return pre;
    }
}; 

4.OJ练习

LeetCode 单链表逆序

上一篇 下一篇

猜你喜欢

热点阅读