腾讯面试题之
单链表的反转
解析图
代码:
/**
* 单链表的反转
* @param head
*/
public static void reverseList(HeroNode head) {
if (head.next == null || head.next.next == null) {
return;
}
// 辅助指针
HeroNode cur = head.next;
// 指向当前节点的下一个节点
HeroNode next = null;
HeroNode reverseList = new HeroNode(0, "", "");
while (cur.next != null) {
next = cur.next;// 暂时保存当前节点的下一个节点
cur.next = reverseList.next;// 将cur的下一个节点指向新的链表的最前端
reverseList.next = cur;
cur = next;// 让cur后移
}
head.next = reverseList.next;
}