diff --git a/solution/1000-1099/1019.Next Greater Node In Linked List/README.md b/solution/1000-1099/1019.Next Greater Node In Linked List/README.md index 79a2dbe281510..ff3cc58fd46a6 100644 --- a/solution/1000-1099/1019.Next Greater Node In Linked List/README.md +++ b/solution/1000-1099/1019.Next Greater Node In Linked List/README.md @@ -110,6 +110,40 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * Definition for singly-linked list. + * function ListNode(val) { + * this.val = val; + * this.next = null; + * } + */ +/** + * @param {ListNode} head + * @return {number[]} + */ +var nextLargerNodes = function(head) { + let nums = []; + while (head != null) { + nums.push(head.val); + head = head.next; + } + const n = nums.length; + let larger = new Array(n).fill(0); + let stack = []; + for (let i = 0; i < n; i++) { + let num = nums[i]; + while (stack.length > 0 && nums[stack[stack.length - 1]] < num) { + larger[stack.pop()] = num; + } + stack.push(i); + } + return larger; +}; +``` + ### **...** ``` diff --git a/solution/1000-1099/1019.Next Greater Node In Linked List/README_EN.md b/solution/1000-1099/1019.Next Greater Node In Linked List/README_EN.md index 1f14c27371467..dd87a4c894894 100644 --- a/solution/1000-1099/1019.Next Greater Node In Linked List/README_EN.md +++ b/solution/1000-1099/1019.Next Greater Node In Linked List/README_EN.md @@ -124,6 +124,40 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * Definition for singly-linked list. + * function ListNode(val) { + * this.val = val; + * this.next = null; + * } + */ +/** + * @param {ListNode} head + * @return {number[]} + */ +var nextLargerNodes = function(head) { + let nums = []; + while (head != null) { + nums.push(head.val); + head = head.next; + } + const n = nums.length; + let larger = new Array(n).fill(0); + let stack = []; + for (let i = 0; i < n; i++) { + let num = nums[i]; + while (stack.length > 0 && nums[stack[stack.length - 1]] < num) { + larger[stack.pop()] = num; + } + stack.push(i); + } + return larger; +}; +``` + ### **...** ``` diff --git a/solution/1000-1099/1019.Next Greater Node In Linked List/Solution.js b/solution/1000-1099/1019.Next Greater Node In Linked List/Solution.js new file mode 100644 index 0000000000000..4678e8d57b938 --- /dev/null +++ b/solution/1000-1099/1019.Next Greater Node In Linked List/Solution.js @@ -0,0 +1,29 @@ +/** + * Definition for singly-linked list. + * function ListNode(val) { + * this.val = val; + * this.next = null; + * } + */ +/** + * @param {ListNode} head + * @return {number[]} + */ + var nextLargerNodes = function(head) { + let nums = []; + while (head != null) { + nums.push(head.val); + head = head.next; + } + const n = nums.length; + let larger = new Array(n).fill(0); + let stack = []; + for (let i = 0; i < n; i++) { + let num = nums[i]; + while (stack.length > 0 && nums[stack[stack.length - 1]] < num) { + larger[stack.pop()] = num; + } + stack.push(i); + } + return larger; +}; \ No newline at end of file