DEV Community

Miss Pooja Anilkumar Patel
Miss Pooja Anilkumar Patel

Posted on

2095. Leetcode Solution in javascript

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} head
 * @return {ListNode}
 */
const deleteMiddle = function(head) {
  if(head == null) return head
  const dummy = new ListNode(null, head)
  let n = 0, cur = head
  while(cur) {
    n++
    cur = cur.next
  }
  if(n === 1) return null
  const mid = Math.floor(n / 2)
  cur = dummy.next
  let pre = dummy 
  for(let i = 0; i < n; i++) {
    if(i === mid - 1) {
      pre = cur
      // pre.next = cur.next.next
    }
    if(i === mid) {
      pre.next = cur.next
    }
    if(i > mid) break
    cur = cur.next
  }
  return dummy.next
};
Enter fullscreen mode Exit fullscreen mode

challenge

leetcode

Here is the link for the probelm:
https://leetcode.com/problems/delete-the-middle-node-of-a-linked-list/

Top comments (2)

Collapse
 
zeeshanali0704 profile image
ZeeshanAli-0704
var deleteMiddle = function(head) {
  let fast = head;
    let slow = head;
    let dummy = new ListNode();
    dummy.next = head;
    let prev = dummy;
    while(fast && fast.next){
        fast = fast.next.next;
        prev = slow;
        slow = slow.next;
    }

    while(slow.next){
        slow.val = slow.next.val;
        prev = slow;
        slow = slow.next;
    }

    prev.next = null;
    return dummy.next;
};
Enter fullscreen mode Exit fullscreen mode
Collapse
 
chiki1601 profile image
Miss Pooja Anilkumar Patel

👍🏻