与分区墨水列表相混淆



给定一个链接列表和目标值t,将其划分为以使得所有小于t的节点均在大于或等于目标值t的节点之前列出。

我发现理解代码对我有些困惑。

while(head!=null){
  if(head.value<target){
    curSmall.next=head;
    curSmall=curSmall.next;
  } else{
    curLarge.next=head;
    curLarge=curLarge.next;
  }
  head=head.next;
}
curSmall.next=large.next;
curLarge.next=null;
return small.next;

我只是不了解这两个部分large.nextreturn small.next?换句话说,当我们连接大小链接列表时,curSmall.next-> large.next,为什么我们将大。为什么我们需要返回small.next

例如,在该代码的循环之后,两个链接列表如下。

dummy_head(small( - &gt; a-&gt; c-&gt; d

dummy_head(大( - &gt; f-&gt; h

和Cursmall和Curlarge分别指向节点" D"one_answers" H"。因此,您可以在以下步骤中获得所需的链接列表。

  1. 小链接列表附加了大链接列表=&gt;cursmall.next = ligh.next;
  2. 大型链接列表点的尾部节点" H"指向null =&gt;curlarge.next = null;
  3. 返回整个链接列表=&gt的头节点'a';返回small.next;

相关内容

  • 没有找到相关文章

最新更新