16链表的反转|剑指offer

来源:互联网 发布:10年前网络金曲 编辑:程序博客网 时间:2024/05/06 22:59

题目描述

输入一个链表,反转链表后,输出链表的所有元素。

/*struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}};*/class Solution {public:    ListNode* ReverseList(ListNode* pHead) {        ListNode* current = NULL;                ListNode* node = pHead;        ListNode* newHead=pHead;                while(node != NULL){            ListNode* nextNode = node->next;            if(nextNode == NULL){                newHead = node;            }                       node->next = current;            current = node;            node = nextNode;                                   }        return newHead;    }};


在链表的反转中,经常会出现例如空链表让程序崩溃或者链表断开等问题。我们应该常备一些测试用例做功能测试:

1)输入的链表头指针是NULL

2)输入的链表只有一个结点

3)输入的链表有多个结点

如果我们能够通过这几个测试用例,那我们程序通过的概率就会增加!




0 0
原创粉丝点击