(lintcode)第22题 平面列表

要求:

 

给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。

 注意事项

如果给定的列表中的要素本身也是一个列表,那么它也可以包含列表。

样例:给定 [1,2,[1,2]],返回 [1,2,1,2]

给定 [4,[3,[2,[1]]]],返回 [4,3,2,1]

思路:比较简单,直接递归调用即可。

 

 

/**
 * // This is the interface that allows for creating nested lists.
 * // You should not implement it, or speculate about its implementation
 * public interface NestedInteger {
 *
 *     // @return true if this NestedInteger holds a single integer,
 *     // rather than a nested list.
 *     public boolean isInteger();
 *
 *     // @return the single integer that this NestedInteger holds,
 *     // if it holds a single integer
 *     // Return null if this NestedInteger holds a nested list
 *     public Integer getInteger();
 *
 *     // @return the nested list that this NestedInteger holds,
 *     // if it holds a nested list
 *     // Return null if this NestedInteger holds a single integer
 *     public ListgetList();
 * }
 */
public class Solution {

    // @param nestedList a list of NestedInteger
    // @return a list of integer
    public Listflatten(ListnestedList) {
        // Write your code here
        Listlist=new ArrayList<>();
        doFlatten(nestedList,list);
        return list;
    }
     public void doFlatten(ListnestedList,Listlist){
         if(nestedList != null){
             for(int i=0;i<nestedList.size();i++){
                 if(nestedList.get(i).isInteger()){
                     list.add(nestedList.get(i).getInteger());
                 }else{
                     doFlatten(nestedList.get(i).getList(),list);
                 }
             }
         }
     }
}

如果有所帮助,脸皮厚求个赞~

此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~

技术之路不在一时,山高水长,纵使缓慢,驰而不息。

公众号:秦怀杂货店

 

 

 

 

 

上一篇:.NET中大型项目开发必备(10)--图片的裁剪、缩放、与加水印


下一篇:(lintcode)第17题 子集