您的位置:首页 > 编程语言 > C语言/C++

作业9.35:翻转链表

2017-03-30 13:35 399 查看
题目:翻转链表

样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null。

思路:设置两个新的指针,然后通过三个指针的轮转,完成翻转。

代码:

class Solution {
public:
/**
* @param head: The first node of linked list.
* @return: The new head of reversed linked list.
*/
ListNode *reverse(ListNode *head) {
// write your code here
ListNode *p = NULL,*q = NULL;
while(head != NULL){
q = head->next;
head->next = p;
p = head;
head = q;
if(q == NULL){
break;
}
}
return p;
}
};

感想:一拿到这个题,本想用计数器计算链的长度,然后通过辅助指针完成翻转,结果写着写着比较麻烦,然后在网上看到了这一种方法,用三个指针轮换来完成翻转,感觉简单了很多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++作业