常考数据结构与算法:反转链表
生活随笔
收集整理的這篇文章主要介紹了
常考数据结构与算法:反转链表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
輸入一個鏈表,反轉鏈表后,輸出新鏈表的表頭。
?
示例1
輸入
{1,2,3}返回值
{3,2,1}?
public class ReserverAlgo {public static void main(String[] args) {ListNode a = new ListNode(1);ListNode b = new ListNode(2);ListNode c = new ListNode(3);a.next = b;b.next = c;ListNode temp = a;while(null != temp){System.out.println(temp.val);temp = temp.next;}System.out.println("反轉。。。");Solution s = new Solution();a = s.ReverseList(a);temp = a;while(null != temp){System.out.println(temp.val);temp = temp.next;}} }class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;} }class Solution {public ListNode ReverseList(ListNode head) {if(null == head || head.next == null){return head;}ListNode newHead = new ListNode(0);ListNode temp = head;while(null != temp){// 先記錄下一個節點ListNode p = temp.next;// 將當前節點設置為頭節點的下一個節點temp.next = newHead.next;newHead.next = temp;temp = p;}return newHead.next;} }?
?
總結
以上是生活随笔為你收集整理的常考数据结构与算法:反转链表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java:BIO, NIO
- 下一篇: 常考数据结构与算法:重建二叉树