题目
给定一个链表倒序输出
思路
- 反转链表类似数组中的前后数字交互,需要一个临时变量进行存储
- 需要处理把前继节点改为后继节点的问题
- 关键点就是处理当前节点,前继节点,后继节点之间的关系
特殊情况
- 当前节点为null时直接返回
- 当前节点的后继节点为null时直接返回
代码实现
public Node reverseNode(Node node){
if(node==null||node.next==null)
return node;
Node curNode=node; //当前节点
Node preNode=null; //前继节点
Node temNode=null; //临时节点
while(curNode!=null){
temNode=curNode.next; //临时存储当前节点后继节点
curNode.setNext(preNode)// 改变当前节点后继节点
preNode=curNode;//把当前节点改为前继节点
curNode=temNode;//把临时存储节点改为当前节点
}
return preNode; //当当前节点为null时,说明preNode为尾节点,进行返回
}