通过动画演示链表节点的“头插负数、尾插正数”重排过程,理解按绝对值有序到按值有序的转变。
使用列表 d 模拟链表结构,每个节点包含数据区域和指针区域,h 为头指针。链表中各节点已按数据区域中数值的绝对值由小到大排列。现要修改链接关系,使链表按数值由小到大排列。有如下 Python 程序段(高亮行表示当前执行位置):
若 d = [[1,3],[14,4],[-18,-1],[-11,1],[16,2]](已按绝对值升序整理),h = 0,运行后链表的节点顺序为
?
注:为使“按绝对值升序”条件成立,原始输入数据已整理为 d[0]→d[3]→d[1]→d[4]→d[2]→-1。
| 索引 | d[i][0] | d[i][1] |
|---|
h 是新链头,t 是正数链尾,p 是当前遍历节点,q 是 p 的下一个节点(保存后防止断链)。