• 链表反转


    思路:
    使用三个指针:p,pre,next,p指向当前需要更改的节点,pre指向这个节点的前一个节点,next指向这个节点的后一个节点。重点是更改指针的顺序,更新链首指针。

    /*
    只需要完成逆置链表函数
    struct ListNode {
    	int val;
    	struct ListNode *next;
    	ListNode(int x) :
    			val(x), next(NULL) {
    	}
    };
    */
    
    class Solution {
    public:
        ListNode* ReverseList(ListNode* pHead) {
    		if(pHead==NULL||pHead->next==NULL)
                return pHead;
            ListNode* pre=pHead;
            ListNode* p=pre->next;
            ListNode* next=pre->next->next;
    
            while(pre->next!=NULL){
                pre->next=p->next;
                p->next=pHead;
                pHead=p;
                p=next;
                next=next->next;          
                
            
            }
            return pHead;
            
        }
    };
    
  • 相关阅读:
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    FM
    GBDT+LR
    推荐系统架构设计
    DSSM双塔模型
    git
  • 原文地址:https://www.cnblogs.com/sandy-t/p/7459300.html
Copyright © 2020-2023  润新知