JAVA链表返回子表_基于java的链表反转
鏈表反轉是鏈表基礎操作之一,其中重點在于節點斷開對下一節點引用前用一個中間變量保存對下一節點的引用
現有如下鏈表
具體步驟如下
創建一個節點變量 temp 保存第三個節點的引用
.斷開第二個節點對第三個節點的引用
使第二個節點指針指向第一個節點
把 temp 指針指向第二個節點,由于這一步 temp 是第三個節點的引用,所以相當于把第三個節點指針指向第二個節點
之后把 temp 指針下移一位,指向第四節點,重復第 2 到第 5?步直至到鏈表末尾
循環完成了把 head 引用變為null
具體代碼實現
/**
* 鏈表反轉
*
* @param head
* @return 新的頭節點
*/
static LinearList reversal(LinearList head){
/*
upper:上一節點
current: 當前節點
temp: 臨時節點
*/
LinearList temp,upper,current;
//保存上一節點引用
upper = head;
//保存當前節點引用
current = head.nextNode;
//遍歷鏈表
while(current != null){
//保存當前節點的對下一節點的引用
temp = current.nextNode;
//把當前節點指向上一節點,完成當前節點指針反轉
current.nextNode = upper;
//遍歷指針下移一位
upper = current;
current = temp;
}
//設置頭節點指針為空
head.nextNode = null;
//返回新的頭節點
return upper;
}
總結
以上是生活随笔為你收集整理的JAVA链表返回子表_基于java的链表反转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中的socket算法_GitHu
- 下一篇: php 获取html中图片不显示,HTM