讨论/题目交流/求助leet25代码问题/
求助leet25代码问题

/**

 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseKGroup(ListNode* head, int k) {
        ListNode* result=new ListNode(0);
        
        ListNode* r=result;
        
        ListNode* p=head;
        ListNode* q=head;
        
        int Ki=k;
        while(Ki!=1)
        {
            if(q->next==NULL)
            {
                return p;
            }
            q=q->next;
            Ki--;
            
        }
        r->next=q;
            p->next=q->next;
        
        Ki=k;
        if(k>2&&head->next!=NULL)
        {
            ListNode* z=head->next;
            ListNode* zi=z;
            
            while(Ki!=3&&zi->next!=NULL)
            {
                         
                
                    zi=zi->next;
                    
                
                Ki--;
            }
            q->next=z;
            zi->next=p;
            

        }
        else{
            q->next=p;
        }
        
        
        p->next=reverseKGroup(p->next,k);
        return result->next;

        
    }
};

代码如上提交结果是 执行出错
AddressSanitizer:DEADLYSIGNAL

==45==ERROR: AddressSanitizer: stack-overflow on address 0x7ffe34accfd8 (pc 0x00000037b081 bp 0x0000ffffffff sp 0x7ffe34accfd0 T0)
==45==ABORTING

最后执行的输入:
[1,2,3,4,5]
3

求助如何修改 谢谢

展开讨论
共 3 个讨论

1、建议以后把代码放框里
2、建议以后将出错的输入贴上来
3、感觉是head没有判NULL导致。

百分之95.37是越界了

把代码放代码框啊
不然看不了