BST의 요소 leetcode230 K 번째 작은

1  "" " 
2  이진 검색 트리 감안할 때, 그것은에서 k 번째 작은 요소를 찾기 위해 기능 kthSmallest 물품.
 3  주 :
 4  . 당신은, k는 항상 유효 1 ≤ K ≤ BST의 총 요소를 가정 할 수
 5  : 예 1
 (6)  입력 : 루트 = 3,1,4, NULL, 2, K = 1
 7     3
 8    / \
 9  1~4
 10    \
 11     2
 12  출력 : 1
 13  예 2
 14  입력 : 루트 = 5,3,6, 2,4, 널, 널, 1], K = 3
 15         5
 16        / \
 17       3 6
 18      / \
. 19     (2) (4)
 (20)는    /
 21이다  . (1)
 22  출력 :. 3
 23  "" " 
24  " "" 
25  스택 선주문 사용 플러스 판정 문
 (26)은  IF LEN (RES) == K
 27  "" " 
28  # 진 트리에 대한 정의 . 기지국 
(29)  # 클래스 TreeNode를 : 
30  #      는 def __init __ (자체, X가) : 
31 인  #          self.val X = 
32  #          self.left = 없음 
33 없다  #          self.right 없음 = 
34 없다  
35  클래스 해결책 :
 36      DEFkthSmallest (자체가 루트, K) :
 37          스택 = []
 (38)는          RES가 = []
 39          CUR가 = 루트
 40          동안 스택 또는 : CUR
 41은              IF CUR :
 42 인                  (CUR) stack.append
 43은                  CUR가 = cur.left
 44이다              다른 :
 45                  = CUR stack.pop ()
 (46)는                  res.append (Cur.Val)
 47                  IF LEN (RES) == K :   #의 탐색 순서는, 문장 중간 결정 
48                      리턴 RES가 [-1 ]
49                  CUR = cur.right

 

추천

출처www.cnblogs.com/yawenw/p/12405344.html