(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); } } } } }
如果有所帮助,脸皮厚求个赞~
此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~
技术之路不在一时,山高水长,纵使缓慢,驰而不息。
公众号:秦怀杂货店
标签:return,22,lintcode,holds,list,列表,NestedInteger,public 来源: https://blog.51cto.com/u_13604316/2729969