euisblue
876. Middle of the Linked List

C++

1class Solution { 2 public: 3 ListNode* middleNode(ListNode* head) { 4 int size = 0; 5 6 ListNode *temp = head; 7 8 while(temp) 9 { 10 ++size; 11 temp = temp->next; 12 } 13 14 size >>= 1; 15 temp = head; 16 for(int i=0;i<size; ++i) 17 { 18 temp = temp->next; 19 } 20 21 return temp; 22 } 23};

JavaScript

1var middleNode = function(head) { 2 let size = 0; 3 4 let temp = head; 5 while(temp) { 6 size+=1; 7 temp = temp.next; 8 } 9 10 size >>= 1; 11 temp = head; 12 for(let i=0; i<size; ++i) { 13 temp = temp.next; 14 } 15 16 return temp; 17};

Ruby

1def middle_node(head) 2 cnt = 0 3 4 temp = head 5 while temp 6 cnt += 1 7 temp = temp.next 8 end 9 10 cnt >>= 1 11 temp = head 12 for i in (0...cnt) do 13 temp = temp.next 14 end 15 16 temp 17end

Ruby pt.2

1def middle_node(head) 2 temp = head 3 cnt = 0 4 while temp 5 temp = temp.next 6 cnt += 1 7 end 8 9 temp = head 10 cnt = cnt / 2 11 for i in 0...cnt 12 temp = temp.next 13 end 14 temp 15end