您的位置:首页 > Web前端

16链表的反转|剑指offer

2016-04-09 17:10 483 查看


题目描述

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



/*
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)输入的链表有多个结点

如果我们能够通过这几个测试用例,那我们程序通过的概率就会增加!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: