Java 单向链表翻转
Posted 郭梧悠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 单向链表翻转相关的知识,希望对你有一定的参考价值。
链表翻转的思路有很多,再此做个记录。
思路一:最简单的思路就是先遍历链表,逐一将链表里的节点放入到栈里面;然后在遍历栈,将栈里的元素在逐一出栈形成新的链表。主要是利用了栈的后进先出的特点。
思路二:
遍历链表,然后修改head.next的指向。每一次遍历都需要不断移动head指针 ,然后将新的head的next指向已经遍历过得节点就可以了:
/**
* 链表翻转
* @param node
*/
public ListNode reverseListNode(ListNode node)
//新链表的头部节点,刚开始肯定是null
ListNode newHead = null;
ListNode head=node;
while (head != null)
//当前需要处理的链表
ListNode oldHead= head;
//移动head,head.next指的是链表中未处理的部分
head = head.next;
//让链表的第一个元素指向已经翻转的链表
oldHead.next = newHead;
//将oldHead作为newhead的头部
newHead= oldHead;
//输出已完成翻转的链表
return newHead;
未完待续
以上是关于Java 单向链表翻转的主要内容,如果未能解决你的问题,请参考以下文章