【Leetcode】199。バイナリツリー右側面図

トピック住所:

https://leetcode.com/problems/binary-tree-right-side-view/

最初の数字の各々で見たとき、左へのバイナリ権利を求めます。各層の最後の桁に加え直接BFSは、最終的な結果を返します。コードは以下の通りであります:

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

public class Solution {    
    public List<Integer> rightSideView(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        if (root == null) {
            return res;
        }
        
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        while (!queue.isEmpty()) {
            int len = queue.size();
            for (int i = 0; i < len; i++) {
                TreeNode x = queue.poll();
                // i == len - 1说明已经遍历到了当层的最右边的节点
                if (i == len - 1) {
                    res.add(x.val);
                }
                if (x.left != null) {
                    queue.offer(x.left);
                }
                if (x.right != null) {
                    queue.offer(x.right);
                }
            }
        }
        
        return res;
    }
}

class TreeNode {
    int val;
    TreeNode left, right;
    TreeNode(int x) {
        val = x;
    }
}

時間複雑 ザ・ n個 O(N) 、空間的複雑 ザ・ n個 O(N)

公開された106元の記事 ウォンの賞賛0 ビュー2712

おすすめ

転載: blog.csdn.net/qq_46105170/article/details/104087887