摘要:原題既然問了能否那就把解法總結就是得到下一個節點,更改當前節點指向,將指針往下移動,直到過完整個解法總結是傳給兩個節點,和最開始是和先用存當前節點的,然后把當前節點的指向,然后一直直到過完整個
原題:
Reverse a singly linked list.
click to show more hints.
Hint:
A linked list can be reversed either iteratively or recursively. Could you implement both?
既然問了能否iteratively or recursively, 那就both把.
iterative 解法:
總結就是得到下一個節點,更改當前節點指向,將指針往下移動,直到過完整個linkedlist.
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode reverseList(ListNode head) { ListNode prev = null; ListNode cur = head; while(cur!=null){ ListNode next = cur.next; cur.next = prev; prev = cur; cur = next; } return prev; } }
recursive 解法:
總結是傳給helper method兩個節點,cur和pre(最開始是head和null), 先用n1存當前節點的next,然后把當前節點的next指向pre,然后一直recursively call help method直到過完整個linkedlist.
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode reverseList(ListNode head) { if(head == null||head.next== null) return head; return getReverse(head, null); } public ListNode getReverse(ListNode cur, ListNode prev){ if(cur.next == null){ cur.next = prev; return cur; } ListNode n1 = cur.next; cur.next = prev; return getReverse(n1,cur); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/65666.html
摘要:反轉一個單鏈表。示例輸入輸出進階你可以迭代或遞歸地反轉鏈表。你能否用兩種方法解決這道題解題思路每次遍歷到最后一位取節點這種方法就算了時間復雜度太高。從鏈表末尾向頭部逐個分離節點,并將節點添加到新鏈表的末尾。與迭代法原理相似。 反轉一個單鏈表。 Reverse a singly linked list. 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2...
摘要:反轉一個單鏈表。示例輸入輸出進階你可以迭代或遞歸地反轉鏈表。你能否用兩種方法解決這道題解題思路每次遍歷到最后一位取節點這種方法就算了時間復雜度太高。從鏈表末尾向頭部逐個分離節點,并將節點添加到新鏈表的末尾。與迭代法原理相似。 反轉一個單鏈表。 Reverse a singly linked list. 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2...
摘要:算法思路兩種方法一般反轉遞歸法一般解決定義三個指針,分別為,存儲當前結點,指向反轉好的結點的頭結點,存儲下一結點信息。遞歸法重點分析先確定終止條件當下一結點為時,返回當前節點判斷當前的鏈表是否為遞歸找到尾結點,將其存儲為頭結點。 Time:2019/4/23Title: Reverse Linked ListDifficulty: EasyAuthor: 小鹿 題目:Reverse...
摘要:代碼描述調轉指針解法非遞歸用三個指針,緊緊相鄰,不斷前進,每次將指向,將指向指向。描述遞歸解法測試結果 Reverse a singly linked list. 代碼ReverseLinkedList.java package list; public class ReverseLinkedList { /** * 描述 Reverse a singly...
摘要:題目鏈接題目分析給定一個鏈表,將其倒轉過來。思路我的思路是,把每一項存進數組作為棧。遍歷完成后,再逐個彈出即可。最終代碼若覺得本文章對你有用,歡迎用愛發電資助。 D78 206. Reverse Linked List 題目鏈接 206. Reverse Linked List 題目分析 給定一個鏈表,將其倒轉過來。 思路 我的思路是,把每一項存進數組作為棧。 遍歷完成后,再逐個彈出即...
閱讀 3923·2021-11-24 09:38
閱讀 3099·2021-11-17 09:33
閱讀 3874·2021-11-10 11:48
閱讀 1243·2021-10-14 09:48
閱讀 3133·2019-08-30 13:14
閱讀 2554·2019-08-29 18:37
閱讀 3396·2019-08-29 12:38
閱讀 1421·2019-08-29 12:30