• 《剑指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;
    	}
    };
    
  • 相关阅读:
    周记(第六周)
    周记(第五周)
    周记(第四周)
    周记(第三周)
    周记(第二周)
    《大道至简》读后感
    __proto__
    Object.prototype
    Object.setPrototypeOf(obj, proto)
    Object.getPrototypeOf(obj)
  • 原文地址:https://www.cnblogs.com/zjutzz/p/6616426.html
Copyright © 2020-2023  润新知