美文网首页
给一个二叉树,依次从上到下返回最右边数值

给一个二叉树,依次从上到下返回最右边数值

作者: 敲一手烂代码 | 来源:发表于2017-03-17 20:39 被阅读5次
    public static List<Integer> rightSideView(TreeNode root) {
            ArrayList<TreeNode> list = new ArrayList<TreeNode>();
            ArrayList<Integer> resultList = new ArrayList<Integer>();
            if (root == null) {
                return resultList;
            }
            list.add(root);
            addRightSideNode(list, resultList);
            return resultList;
        }
        
        public static void addRightSideNode(ArrayList<TreeNode> list,ArrayList<Integer> resultList) {
            if (list !=null &&list.size() == 0) {
                return;
            }
            resultList.add(list.get(list.size() - 1).val);
            ArrayList<TreeNode> newList = new ArrayList<TreeNode>();
            for (TreeNode node : list) {
                if (node.left != null) {
                    newList.add(node.left);
                }
                if (node.right != null) {
                    newList.add(node.right);
                }
            }
            addRightSideNode(newList, resultList);
        }
    

    相关文章

      网友评论

          本文标题:给一个二叉树,依次从上到下返回最右边数值

          本文链接:https://www.haomeiwen.com/subject/jtsynttx.html