LeetCode 1019. Next Greater Node In Linked List (链表中的下一个更大节点)
Posted jimmycheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1019. Next Greater Node In Linked List (链表中的下一个更大节点)相关的知识,希望对你有一定的参考价值。
题目标签:Linked List, Stack
题目给了我们一个 Linked List,让我们找出对于每一个数字,它的下一个更大的数字。
首先把 Linked List 里的数字 存入 ArrayList, 方便后面的操作。
然后遍历 ArrayList,首先每一个数字,都会存入stack;所以就可以利用stack回到之前的数字,存入它的 next Greater Node。
Java Solution:
Runtime: 39 ms, faster than 65 %
Memory Usage: 40 MB, less than 95 %
完成日期:05/06/2019
关键点:利用stack
/** * Definition for singly-linked list. * public class ListNode * int val; * ListNode next; * ListNode(int x) val = x; * */ class Solution public int[] nextLargerNodes(ListNode head) ArrayList<Integer> nums = new ArrayList<>(); Stack<Integer> stack = new Stack<>(); int [] res; // save all numbers into ArrayList for(ListNode node = head; node != null; node = node.next) nums.add(node.val); res = new int[nums.size()]; // use stack to find next greater element for(int i=0; i<nums.size(); i++) // once find a greater num, it will check all previous numbers in stack while(!stack.isEmpty() && nums.get(stack.peek()) < nums.get(i)) res[stack.pop()] = nums.get(i); stack.push(i); // save index into stack return res;
LeetCode 题目列表 - LeetCode Questions List
题目来源:https://leetcode.com/
以上是关于LeetCode 1019. Next Greater Node In Linked List (链表中的下一个更大节点)的主要内容,如果未能解决你的问题,请参考以下文章
[栈] leetcode 1019 Next Greater Node In Linked List
Leetcode 1019. Next Greater Node In Linked List
Leetcode 1019. Next Greater Node In Linked List
[LeetCode] 1019. Next Greater Node In Linked List
LeetCode 1019. Next Greater Node In Linked List (链表中的下一个更大节点)