* struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */

/**
 * 
 * @param head ListNode类 
 * @return  void
 */
void reorderList(struct ListNode* head ) {
    // write code here
    if((!head)||!head->next||!head->next->next)
        return ;
    else{
        struct ListNode*p=head,*q=head,*m=NULL;
        while(q->next){
        while(p->next->next){
            p=p->next;
            m=p->next;
        }
            if(q==p)
                return;
        p->next=NULL;
        m->next=q->next;
        q->next=m;
        q=q->next->next;
        p=q;
    }
    }
}