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

链表的奇偶重排

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;
     
    

    } };

全部评论

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务