题解 | #反转链表#

反转链表

http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

代码

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
      //判空
        if(pHead==NULL){
            return NULL;
        }
      //循环取值的指针
        ListNode *p1=NULL;
        ListNode *p2=pHead;
        ListNode *p3=pHead->next;
        
      //2指向1,然后走下去
        while(p2!=NULL){
            p2->next=p1;
            p1=p2;
            p2=p3;
            if(p3!=NULL){
                p3=p3->next;
            }
        }
        return p1;
    }
};

图示

alt alt alt alt alt alt

全部评论

相关推荐

饿魔:没人说?我来牛美孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务