return the middle node in linked list and in the case of two node return the further one from head

PHOTO EMBED

Fri Jul 19 2024 04:31:59 GMT+0000 (Coordinated Universal Time)

Saved by @vishnu_jha #c++ #dsa #linkedlist #reverselinkedlist #recursion #middlenode

int getLength (node* head) {
  int length = 0;
  node* temp = head;
  while (temp != NULL) {
    length++;
    temp = temp -> next;
  }
  return length;
}

node* middleNode (node* head) {
  int length = getLength(head);
  int mid = (length/2) + 1;
  int cnt = 1;
  node* temp = head;
  while (cnt < mid) {
    temp = temp -> next;
    cnt++;
  }
  return temp;
}
content_copyCOPY

https://youtu.be/vqS1nVQdCJM