Reverse Link List
题目
单向链表反向,输入为 1->2->3->4->5->NULL,输出为5->4->3->2->1->NULL
分析
遍历一次,单次循环中将遍历的元素next指向上一个元素
- 关键点:需要3个指针,一个前向指针prev用于指向当前遍历元素的上一个元素;当前遍历元素指针;由于修改了当前元素的next指针,因此需要一个后向指针next,提前保存下一个元素地址
- 特殊情况:当链表元素只有头或者2个元素时
C语言实现
1 | typedef struct _list_node { |
Python实现
1 | class ListNode(object): |
python代码可利用一个赋值语句对多个对象赋值特性,省略后向指针