From 42aabd46840b3af4633ec0820ea7b5fb052c888d Mon Sep 17 00:00:00 2001 From: huangge1199 Date: Fri, 23 Apr 2021 13:34:17 +0800 Subject: [PATCH] =?UTF-8?q?341:=E6=89=81=E5=B9=B3=E5=8C=96=E5=B5=8C?= =?UTF-8?q?=E5=A5=97=E5=88=97=E8=A1=A8=E8=BF=AD=E4=BB=A3=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../editor/cn/FlattenNestedListIterator.java | 95 +++++++++++++++++++ .../editor/cn/FlattenNestedListIterator.md | 19 ++++ 2 files changed, 114 insertions(+) create mode 100644 LeetCode/src/main/java/leetcode/editor/cn/FlattenNestedListIterator.java create mode 100644 LeetCode/src/main/java/leetcode/editor/cn/FlattenNestedListIterator.md diff --git a/LeetCode/src/main/java/leetcode/editor/cn/FlattenNestedListIterator.java b/LeetCode/src/main/java/leetcode/editor/cn/FlattenNestedListIterator.java new file mode 100644 index 0000000..534bcc2 --- /dev/null +++ b/LeetCode/src/main/java/leetcode/editor/cn/FlattenNestedListIterator.java @@ -0,0 +1,95 @@ +//给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。 +// +// 列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。 +// +// +// +// 示例 1: +// +// 输入: [[1,1],2,[1,1]] +//输出: [1,1,2,1,1] +//解释: 通过重复调用 next 直到 hasNext 返回 false,next 返回的元素的顺序应该是: [1,1,2,1,1]。 +// +// 示例 2: +// +// 输入: [1,[4,[6]]] +//输出: [1,4,6] +//解释: 通过重复调用 next 直到 hasNext 返回 false,next 返回的元素的顺序应该是: [1,4,6]。 +// +// Related Topics 栈 设计 +// 👍 324 👎 0 + +package leetcode.editor.cn; + +import com.code.leet.entiy.NestedInteger; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +//341:扁平化嵌套列表迭代器 +public class FlattenNestedListIterator { + public static void main(String[] args) { + //测试代码 +// Solution solution = new FlattenNestedListIterator().new Solution(); + } + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) + + /** + * // 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 empty list if this NestedInteger holds a single integer + * public List getList(); + * } + */ + public class NestedIterator implements Iterator { + + private List list = new ArrayList<>(); + private int index = 0; + + public NestedIterator(List nestedList) { + getList(nestedList); + } + + private void getList(List nestedList) { + for (NestedInteger nestedInteger : nestedList) { + if (nestedInteger.isInteger()) { + list.add(nestedInteger.getInteger()); + } else { + getList(nestedInteger.getList()); + } + } + } + + @Override + public Integer next() { + int num = list.get(index); + index++; + return num; + } + + @Override + public boolean hasNext() { + return index< list.size(); + } + } + +/** + * Your NestedIterator object will be instantiated and called as such: + * NestedIterator i = new NestedIterator(nestedList); + * while (i.hasNext()) v[f()] = i.next(); + */ +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/LeetCode/src/main/java/leetcode/editor/cn/FlattenNestedListIterator.md b/LeetCode/src/main/java/leetcode/editor/cn/FlattenNestedListIterator.md new file mode 100644 index 0000000..a303228 --- /dev/null +++ b/LeetCode/src/main/java/leetcode/editor/cn/FlattenNestedListIterator.md @@ -0,0 +1,19 @@ +

给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。

+ +

列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。

+ +

 

+ +

示例 1:

+ +
输入: [[1,1],2,[1,1]]
+输出: [1,1,2,1,1]
+解释: 通过重复调用 next 直到 hasNext 返回 false,next 返回的元素的顺序应该是: [1,1,2,1,1]
+ +

示例 2:

+ +
输入: [1,[4,[6]]]
+输出: [1,4,6]
+解释: 通过重复调用 next 直到 hasNext 返回 false,next 返回的元素的顺序应该是: [1,4,6]。
+
+
Related Topics
  • 设计
  • \n
  • 👍 324
  • 👎 0
  • \ No newline at end of file