返回链表的中间节点

typedef struct Node{
    SListDataType   value;  //值
    struct Node *next;   //下一个节点的地址
    }Node;
//单链表
typedef struct SList{
    Node *first;//    *head    第一个节点的地址
} SList;

用快慢指针

SList* MiddleLists(SList *head){
    Node* fast = head;
    Node* slow = head;
    while (fast != NULL){//整个循环中,快的走两步,慢的走一步,快的走一步就得判断
        fast = fast->next;
        if (fast == NULL){
            break;
        }
        slow = slow->next;
        fast = fast->next;
    }
    return slow;
}

猜你喜欢

转载自blog.csdn.net/qq_41832361/article/details/89683084
今日推荐