刚完成了严蔚敏的数据结构——单链表的就地逆置习题(2.21)
解题时想到2种方案,特此总结一下:
方案1:
1遍历单链表,并算出单链表的长度N。
2定位到节点Ai,与节点An-i+1 (i = 1 TO(N/2)+1)//也就是单链表的一半长度
交换各自的数据
i++
方案2:
1定位尾节点
2依次将节点插入到尾节点之后
3将头节点的Next指针,设定成尾节点 //原因是尾节点在就地逆置后,就变为首节点,自己在做的时候忘了这步。
可见尾节点在单链表的逆置过程中起到了关键性作用。
使得算法的时间复杂度大大降低。