Merge Nodes in Between Zeros LeetCode solution in Java

1
/**
2
* Definition for singly-linked list. public class ListNode { int val; ListNode next; ListNode() {}
3
* ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this.val = val;
4
* this.next = next; } }
5
*/
6
class Solution {
7
public ListNode mergeNodes(ListNode head) {
8
ListNode newList = new ListNode(0);
9
ListNode newHead = newList;
10
ListNode newtemp = newList;
11
/*---------------------------------------------------------------*/
12
ListNode temp = head.next;
13
int sum = 0;
14
if (head == null && head.next == null) return head;
15
/*---------------------------------------------------------------*/
16
while (temp != null) { // traverse linkelist
17
sum += temp.val; // sum elements until zero
18
if (temp.val == 0) {
19
ListNode node = new ListNode(sum); // create a new node;
20
newtemp.next = node; // connect with dummy node which is created initially
21
newtemp = newtemp.next; // shift pointer to newly created node
22
sum = 0; // reset sum
23
}
24
temp = temp.next;
25
}
26
/*---------------------------------------------------------------*/
27
return newHead.next; // skip dummy node which is created initially
28
}
29
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0