- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在下面的代码中,为什么我需要这一行:
ArrayList<Integer> c_curr = new ArrayList<Integer>(curr);
为什么我不能直接将 curr 添加到结果 res 中?当我尝试这样做时,我得到一个空的资源。
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
if (root == null)
return res;
Queue<TreeNode> q = new LinkedList<TreeNode>();
q.add(root);
q.add(null);
ArrayList<Integer> curr = new ArrayList<Integer>();
TreeNode t;
while (!q.isEmpty()) {
t = q.poll();
if (t != null) {
curr.add(t.val);
if (t.left != null) {
q.offer(t.left);
}
if (t.right != null) {
q.offer(t.right);
}
} else {
ArrayList<Integer> c_curr = new ArrayList<Integer>(curr);
res.add(c_curr);
curr.clear();
if (!q.isEmpty())
q.offer(null);
}
}
return res;
}
最佳答案
假设我们像这样更改这些行:
//ArrayList<Integer> c_curr = new ArrayList<Integer>(curr);
//res.add(c_curr);
res.add(curr);
curr.clear();
列表 curr
添加到结果 res
。 Java 按值传递参数。所以当你调用
boolean java.util.List.add(List<Integer> e)
方法,将curr
的值复制到e
。但是因为 curr
是一个对象,所以 curr
和 e
指的是内存中的同一个地方。因此,当您清除 curr
时,您会得到一个空的 res
。
那是因为创建了一个新列表 c_curr
,其值为 curr
。然后添加到原代码中的res
中。因此修改 curr 不会影响 res。
关于java - 二叉树的Level Order Traversal(具体题目见下方代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53456311/
有没有办法让文字不上下跳动?我不能使用position:absolute。因为它弄乱了我网站的其余部分。请看这个 fiddle :http://jsfiddle.net/9xn19111/11/ 这是
我正在尝试将文本“WE CREATE DANCE”“WE HAVE FUN”“WE LOOK GOOD”放置在一个容器内,该容器将根据文本的大小和文本的行数进行调整。容器的大小是未知的,因为它是动态的
我正在构建一个 Wasm 应用程序并编译它,我有一个 shell 脚本。 当我从终端手动运行它时,我有以下内容: /app/Go/assets$ ./script.compile.wasm.sh Wa
我正在关注 URL: https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-intel
我想看到我在 Chrome 中悬停的 anchor 的 :hover 样式。在 Firebug 中,有一个样式下拉列表允许我为元素选择不同的状态。 I can't seem to find anyth
我刚刚尝试安装 git-flow,但是,它似乎没有与 git 正确集成,我该怎么做才能将 gitflow 与 git 集成?我可以手动执行此操作吗? 谢谢,杰弗里 [root@sa 2]# wget
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: “git pull” broken 在我的 MAC 上使用 git version 1.7.5.4 当尝试从
我连接了 bitbucket,我在我的电脑上安装了 Git 和 sourcetree,我尝试将 sourcetree 和 bitbucket 连接在一起。但我无法将两者联系起来。当我尝试克隆存储库源路
我设置了github for mac 现在我正尝试从终端使用 git 命令。 如果我尝试运行 git rebase 命令,我会收到以下消息 > cd /Applications/GitHub.app/
我正在尝试使用 git send-email 发送补丁,但我收到以下错误: git: 'send-email' is not a git command. See 'git --help'. 如何使
尝试按照说明从 docker 网站构建 docker 镜像。 https://docs.docker.com/examples/running_redis_service/ 这是我得到的错误,我会按照
当我尝试从本地文件中 pull 、克隆或推送某些内容时出现此错误。我尝试使用以下方法解决: Reupdating path variable to C:\Program Files\Git\cmd\g
我目前正在使用 Cloudera 5.6 尝试基于另一个表在 hive 表中创建 Parquet 格式表,但我遇到了错误。 create table sfdc_opportunities_sandbo
我在 visual studio 2010 中使用 git 进行源代码控制。我可以使用诸如“git status”、“git commit”之类的命令,但是当我尝试使用“git review”时,我得
如何解决“MacBook pro”上的此错误。 git: 'credential-wincred' is not a git command. See 'git --help'. git: 'cred
以下 java 8 流没有任何终端操作。下面这个块是不是应该是懒惰的,因为我只有中间操作,还没有被终端操作操作过。当我运行这个块时,我得到“流已经被操作或关闭”。见 https://ideone.co
我是一名优秀的程序员,十分优秀!