diff --git a/src/main/java/com/fishercoder/solutions/_1019.java b/src/main/java/com/fishercoder/solutions/_1019.java
index a2ba761429..481ab91132 100644
--- a/src/main/java/com/fishercoder/solutions/_1019.java
+++ b/src/main/java/com/fishercoder/solutions/_1019.java
@@ -2,6 +2,10 @@
 
 import com.fishercoder.common.classes.ListNode;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Stack;
+
 public class _1019 {
     public static class Solution1 {
         public int[] nextLargerNodes(ListNode head) {
@@ -37,4 +41,26 @@ private int findLength(ListNode head) {
             return count;
         }
     }
+    public static class Solution2 {
+        // Store the nodes of linked list into an array list
+        // Create a stack that stores indexes, which would be needed to find the next greater element of
+        // element at index i
+        public int[] nextLargerNodes(ListNode head) {
+            List<Integer> numList = new ArrayList<>();
+
+            for (ListNode temp = head; temp != null; temp = temp.next) {
+                numList.add(temp.val);
+            }
+            Stack<Integer> stack = new Stack<>();
+            int result[] = new int[numList.size()];
+            for (int i = 0; i < numList.size(); i++) {
+
+                while (!stack.isEmpty() && numList.get(stack.peek()) < numList.get(i)) {
+                    result[stack.pop()] = numList.get(i);
+                }
+                stack.push(i);
+            }
+            return result;
+        }
+    }
 }
diff --git a/src/test/java/com/fishercoder/_1019Test.java b/src/test/java/com/fishercoder/_1019Test.java
index e3901ba9f6..f910e0664f 100644
--- a/src/test/java/com/fishercoder/_1019Test.java
+++ b/src/test/java/com/fishercoder/_1019Test.java
@@ -10,10 +10,11 @@
 
 public class _1019Test {
     private static _1019.Solution1 solution1;
-
+    private static _1019.Solution2 solution2;
     @BeforeClass
     public static void setup() {
         solution1 = new _1019.Solution1();
+        solution2 = new _1019.Solution2();
     }
 
     @Test
@@ -34,4 +35,9 @@ public void test3() {
         assertArrayEquals(new int[]{7, 9, 9, 9, 0, 5, 0, 0}, solution1.nextLargerNodes(head));
     }
 
+    @Test
+    public void test4() {
+        ListNode head = LinkedListUtils.contructLinkedList(new int[]{2, 7, 4, 3, 5});
+        assertArrayEquals(new int[]{7, 0, 5, 5, 0}, solution2.nextLargerNodes(head));
+    }
 }
\ No newline at end of file