约瑟夫环I

来源:互联网 发布:咪喹莫特 知乎 编辑:程序博客网 时间:2024/06/05 05:13
class Joseph {
public:
    struct ListNode{
        int val;
        ListNode *next;
        ListNode(int x) : val(x), next(NULL){}
    };
    int getResult(int n, int m) {
         ListNode* head=new  ListNode(1);
         ListNode* p=head;
        for(int i=2;i<=n;i++)
        {
            p->next= new ListNode(i);
            p=p->next;
            
        }
        p->next=head;
        
        int count=1;
        ListNode* pre=p;
        p=head;
        if(m==1)
         {
          return pre->val;
         }
        while(p->next!=p)
        {
             if(count==m)
             {
                 p=p->next;
                 pre->next=pre->next->next;
                 count=1;
             }
           pre=p;
          p=p->next;
          count++;                        
        }
        return p->val;
        
       
    }
};
0 0
原创粉丝点击