题解 | #链表的奇偶重排#

链表的奇偶重排

http://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3

/**

  • struct ListNode {

  • int val;

  • struct ListNode *next;

  • ListNode(int x) : val(x), next(nullptr) {}

  • }; / class Solution { public: /*

    • 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    • @param head ListNode类
    • @return ListNode类 */

    ListNode* oddEvenList(ListNode* head) { // write code here

     if(!head||!(head->next))
         return head;
     
     
     ListNode* res1=new ListNode(-1);
     ListNode* res2=new ListNode(-1);
     res1->next=head;
     res2->next=head->next;
     
     ListNode* cur=head;
     
     while(cur->next)               //遍历整个链表,奇偶位结点连接
     {
         ListNode* tmp=cur->next;
         cur->next=tmp->next;
         cur=tmp;
     }
     
     cur=head;
     while(cur->next)  //遍历到奇链表末尾时,将偶链表连接在奇链表末尾
     {
         cur=cur->next;
     }
     cur->next=res2->next;
     
     return res1->next;
     
    

    } };

全部评论

相关推荐

11-08 16:53
门头沟学院 C++
投票
滑模小马达:第三个如果是qfqc感觉还行,我签的qfkj搞电机的,违约金也很高,但公司感觉还可以,听说之前开过一个试用转正的应届生,仅供参考。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务