我对这个编程世界和java都是全新的,我正在尝试链接列表,并在尝试对0,1s和2s的链表进行排序时遇到问题。谁能指出我做错了什么?我在这里附加我的代码。事情是基于我的逻辑它应该正常工作但不幸的是它实际上返回列表,因为它没有排序。
对0s,1s和2s的链接列表进行排序
<button type="button" id="print-poem">PRINT</button>
<?php
function mark_printed () {
$transaction_status = 'Printed';
$field_key = "field_58c7ce7357709";
update_field( $field_key, $transaction_status, $post_id );
}
?>
答案 0 :(得分:0)
我不知道你的代码究竟是什么意思,但我尝试用尽可能少的更改来做到这一点
我介绍了一个用于合并两个列表的新函数
private Node merge(Node list1, Node list2){
if (list1.next == null && list2.next == null)
return new Node(0);
else if (list1.next == null)
return list2;
else if (list2.next == null)
return list1;
else {
Node curr = list1.next;
while (curr.next != null){
curr = curr.next;
}
curr.next = list2.next;
return list1;
}
}
并将排序功能更改为
Node sortList(Node h)
{
if (h == null || h.next == null)
return h;
Node zero = new Node(0);
Node one = new Node(1);
Node two = new Node(2);
Node curr = h;
Node nextNode;
while(curr.next != null) {
nextNode = curr.next;
if(curr.data == 0)
{
curr.next = zero;
zero = curr;
}
else if(curr.data == 1)
{
curr.next = one;
one = curr;
}
else
{
curr.next = two;
two = curr;
}
curr = nextNode;
}
Node tmpList = merge(zero, one);
h = merge(tmpList,two);
return h;
}
这个问题有几个解决方案,其中一些更容易,仅举几例