あなたは、バイナリツリーの各行の最大値を見つける必要があります。
例:
入力: 1 / \ 3 2 / \ \ 5 3~9 出力:[1、3,9]
公衆リスト<整数> largestValues(ツリーノードのルート){ リスト <整数>再= 新規のArrayList <> (); LinkedListは <のTreeNode>キュー= 新しい LinkedListは<> (); もし(ヌル == ルート){ 戻り再。 } queue.offer(ルート)。 TreeNodeのCUR = ルート。 しばらく(!queue.isEmpty()){ int型のlen = queue.size(); int型の最大= はInteger.MIN_VALUE。 以下のための(int型 iがLEN <; I = 0 iが++ ){ CUR = queue.poll()。 最大 =最大> cur.val?最大:cur.val。 もし(!cur.left = ヌル)queue.offer(cur.left)。 もし(!cur.right = ヌル)queue.offer(cur.right)。 } re.add(MAX)。 } 戻り再。 }