您的位置:首页 > 其它

链表的冒泡排序

2015-09-27 19:51 288 查看

题目

冒泡法实现链表排序

public class ListNode{
int val;
ListNode next;

public ListNode(int val) {
this.val = val;
}
}


分析

冒泡排序,每次扫描一趟获得最大的值。此题注意链表节点的交换。

public ListNode Bubble(ListNode root){
ListNode Head = root;

int length = 0;
while (root != null){
root = root.next;
length++;
}

int index = 0;
while (index < length -1){
ListNode cur = Head;
ListNode pre = null;
for (int i = 0; i < length - 1 - index; i++) {
ListNode temp = cur.next;
if (temp.val < cur.val){//exchange
cur.next = temp.next;
temp.next = cur;
if (pre == null){//头指针情况
pre = temp;
Head = pre;
}else {
pre.next = temp;
pre = temp;
}
}else {
pre = cur;
cur = temp;
}
}
index++;
}
return Head;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: