struct Node* EntryNode(struct Node* head) { struct Node* meetingNode = MeetingNode(head); if (meetingNode == NULL) return NULL; struct Node* pNode = meetingNode; int Num_of_nodes = 0; while(pNode->Next != meetingNode) { pNode= pNode->Next; Num_of_nodes++; } Num_of_nodes++; printf("\nThe number of nodes in the loop is %d",Num_of_nodes); pNode = meetingNode; struct Node* pNode2 = head; while(pNode != pNode2) { pNode = pNode->Next; pNode2 = pNode2->Next; } return pNode; }
ListNode* EntryNodeOfLoop(ListNode* pHead) { ListNode* meetingNode = MeetingNode(pHead); if(meetingNode == NULL) return NULL; // get the number of nodes in loop int nodesInLoop = 1; ListNode* pNode1 = meetingNode; while(pNode1->m_pNext != meetingNode) { pNode1 = pNode1->m_pNext; ++nodesInLoop; } // move pNode1 pNode1 = pHead; for(int i = 0; i < nodesInLoop; ++i) pNode1 = pNode1->m_pNext; // move pNode1 and pNode2 ListNode* pNode2 = pHead; while(pNode1 != pNode2) { pNode1 = pNode1->m_pNext; pNode2 = pNode2->m_pNext; } return pNode1; }
ListNode* EntryNodeOfLoop(ListNode* pHead) { if (pHead == nullptr) return nullptr; ListNode* pNode = MeetingNode(pHead); if (pNode == nullptr) return nullptr; int loopNum = 1; ListNode* pNodeTemp = pNode; pNode = pNode->m_pNext; while (pNode != pNodeTemp){ pNode = pNode->m_pNext; ++loopNum; } pNode = pHead; for (int i = 0;i < loopNum;++i) { pNode = pNode->m_pNext; } pNodeTemp = pHead; while (pNodeTemp != pNode){ pNode = pNode->m_pNext; pNodeTemp = pNodeTemp->m_pNext; } return pNode; }
void EntryNode(struct Node* head) { struct Node* meetingNode = MeetingNode(head); if (meetingNode == NULL) return ; struct Node* pNode = meetingNode; int Num_of_nodes = 0; struct Node* pNode1; while(pNode->Next != meetingNode) { pNode= pNode->Next; Num_of_nodes++; } Num_of_nodes++; printf("\nThe number of nodes in the loop is %d",Num_of_nodes); pNode = meetingNode; struct Node* pNode2 = head; while(pNode != pNode2) { pNode = pNode->Next; pNode2 = pNode2->Next; } for(int k=0;k<Num_of_nodes;k++) { pNode1 = pNode->Next; } pNode1->Next = NULL; }