擅长:python、mysql、java
<p>提前退出的原因是,您在列表上循环时正在修改列表。举个简单的例子:</p>
<pre><code>l = [3,6,9,10]
for x in l:
print(x)
l.remove(x)
</code></pre>
<p>输出为</p>
<pre><code>3
9
</code></pre>
<p>但是,当前代码还有许多其他问题。我能抓住的是:</p>
<ol>
<li>您没有在<code>for</code>循环中添加新调用的楼层。你知道吗</li>
<li>用<code>queue[0]</code>作为目标调用<code>floorCompare</code>方法,而不是<em>final</em>方法。如您所见,由于您比较了<code>3</code>和<code>6</code>,因此<code>7</code>没有被认为是在途中。你应该比较<code>3</code>和<code>10</code>,最远的一个。你知道吗</li>
</ol>
<p>还要注意,<code>queue</code>最初没有排序,中间调用也不会按顺序排列。所以你在使用它的时候要记住这一点。你知道吗</p>