LinkNode* findMiddle(LinkNode* head){
if(head == NULL){
return head; //检查空指针直接返回;
}
LinkNode* fast = head; //定义快指针并初始化
LinkNode* slow = head;//定义慢指针并初始化
while(fast != NULL && fast -> next != NULL){ //为什么用&&而不是||,因为在odd list中,用||快指针会跑到不知哪里去了。
fast = fast -> next -> next;
slow = slow -> next;
} //快指针走完了
return slow;
}
网友评论