LeetCode1019.Next Greater Node In Linked List(체인 테이블의 다음 더 큰 노드)
3280 단어 code
We are given a linked list with
head
as the first node. Let’s number the nodes in the list: node_1
, node_2
, node_3
, … etc. Each node may have a next larger value: for
node_i
, next_larger(node_i)
is the node_j.val
such that j > i
, node_j.val > node_i.val
, and j
is the smallest possible choice. If such a j
does not exist, the next larger value is 0
. Return an array of integers answer, where
answer[i] = next_larger(node_{i+1})
. Note that in the example
inputs
(not outputs) below, arrays such as [2,1,5]
represent the serialization of a linked list with a head node value of 2, second node value of 1, and third node value of 5. 헤드 노드
head
을 첫 번째 노드로 하는 체인표를 제시한다.체인 테이블의 노드는 각각 node_1
, node_2
, node_3
,...노드마다 다음 값이 있을 수 있다(
next larger value
). node_i
의 경우 next_larger(node_i)
이 node_j.val
이면 j > i
이고 node_j.val > node_i.val
이다. j
은 가능한 옵션 중 가장 작은 것이다.이런 j
이 존재하지 않는다면 다음 더 큰 값은 0
이다.정수 답안 수조
answer
, 그중 answer[i] = next_larger(node_{i+1})
을 되돌려줍니다.주의: 아래의 예에서
[2,1,5]
과 같은 입력(출력이 아님)은 체인 테이블의 서열화 표시로 헤드 노드의 값은 2, 두 번째 노드의 값은 1, 세 번째 노드의 값은 5이다.제목 링크:https://leetcode.com/problems/next-greater-node-in-linked-list/
개인 홈페이지:http://redtongue.cn or https://redtongue.github.io/
Difficulty: medium
Example 1:
Input: [2,1,5]
Output: [5,5,0]
Example 2:
Input: [2,7,4,3,5]
Output: [7,0,5,5,0]
Example 3:
Input: [1,7,5,1,9,2,5,1]
Output: [7,9,9,9,0,5,0,0]
Note:
분석하다.
참조 코드
#Definition for singly-linked list.
class ListNode(object):
def __init__(self, x):
self.val = x
self.next = None
class Solution(object):
def nextLargerNodes(self, head):
h=head
length=0
while(h!=None):
length+=1
h=h.next
if(length==0):
return []
li=[0]*length
index=[]
pos=0
while head != None:
if(len(index)!=0 and index[-1][0] < head.val):
li[index[-1][1]]=head.val
index=index[:-1]
else:
index.append((head.val,pos))
head=head.next
pos+=1
return li
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
소스 코드가 포함된 Python 프로젝트텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.