206. Reverse Linked List

Reverse a singly linked list.


反转链表:

1)对于空链表或者一个节点链表无需反转,返回即可。


设计思路:

1)首先把当前节点外的剩下节点保存在next中。

2)处理当前节点,主要把当前节点的next指针指向部分反转链表list中。

3)再把加入了当前节点的的head赋值给list即可。

/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*reverseList(structListNode*head){if(head==NULL||head->next==NULL){returnhead;}structListNode*list=NULL;structListNode*next=NULL;for(;head;head=next){next=head->next;head->next=list;list=head;}returnlist;}

设计盲区:不要老想着对新链表指向list进行处理,换位思考处理head,会节省不少代码量