【发布时间】:2019-11-24 17:13:49
【问题描述】:
我一直在看Java中的合并排序实现,但不明白以下部分:
Node middle = getMiddle(head); //get the middle of the list
Node left_head = head;
Node right_head = middle.next;
middle.next = null; //split the list into two half's
所以通过设置 middle.next = null 我们将 left_head 分割为中间。但是为什么 right_head 仍然存在,因为它指的是 middle.next 变成了 null?
更新:好的,所以让我感到困惑的是middle.next = null 实际上并没有将下一个节点设置为空,而是将middle's next 变量更新为 null,当然不会影响right_head。
【问题讨论】:
-
注意 bottom up merge sort for linked list 避免递归扫描和拆分列表。
标签: java linked-list mergesort