zoukankan      html  css  js  c++  java
  • 《剑指offer》-反转链表

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

    题目考察链表反转,但是挖坑不是反转本身,而是题目的描述再次不清晰:什么叫“反转链表后输出链表所有元素”?给的代码框架只有一个函数ReverseList,返回值类型是ListNode*,输出不输出和我有什么关系?

    class Solution{
    public:
    	ListNode* ReverseList(ListNode* pHead){
    		if (pHead == NULL){
    			return NULL;
    		}
    		if (pHead->next == NULL) {
    			return pHead;
    		}
    
    		ListNode* pBefore = pHead;
    		ListNode* p = pHead->next;
    		ListNode* pAfter = p->next;
    
    		while (pAfter != NULL){
    			p->next = pBefore;
    			pBefore = p;
    			p = pAfter;
    			pAfter = pAfter->next;
    		}
    		p->next = pBefore;
    		pHead->next = NULL;   //这句一定要加上,因为逆序后再遍历,需要判断出链表结束,也就是节点的next等于NULL
    		return p;
    	}
    };
    
  • 相关阅读:
    组件之间通信(父传子)
    flex布局
    ffmpeg解析TS流(转)
    swift之?和!的含义(转)
    Swift之画圆角添加多个枚举值方法
    swift之singleton
    swift之闭包
    Swift之fallthrough
    Selector
    Settings Bundle
  • 原文地址:https://www.cnblogs.com/zjutzz/p/6616426.html
Copyright © 2011-2022 走看看