劍指offer(面試題五)--從尾到頭列印單鏈表
程式碼如下(遞迴實現):
/** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ import java.util.ArrayList; public class Solution { ArrayList<Integer> List=new ArrayList(); public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNode!=null){ printListFromTailToHead(listNode.next); List.add(listNode.val); } return List; } }
相關推薦
劍指offer(面試題五)--從尾到頭列印單鏈表
程式碼如下(遞迴實現): /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { *
劍指offer(面試題29):順時針列印矩陣
/* * 順時針列印矩陣 * 注意矩陣的維度 */ #include<iostream> using namespace std; //只要當前的起始行號小於終止行號或者起始列號小於終止列號,就可以繼續順時針列印 // 但是隨著順勢怎列印,剩下
劍指offer(面試題39):陣列中出現次數超過陣列長度一半的數字
方法1: 從數學角度看,所求的數一定的原陣列(有序化)的中位數,那麼,我們可以通過對陣列排序,這樣得到的時間複雜度是O(nlogn)O(nlogn)。而如果能夠優化到在O(n)O(n)的時間內找到,就更好了。基於快速排序的partition階段,如果我們可以
劍指offer(面試題35):複雜連結串列的複製
/* * 複雜連結串列的複製 * 複雜連結串列是指,結點的指標可能不規則地指向另一個結點 */ #include<iostream> using namespace std; struct ComplexListNode { int v
劍指offer(面試題38):字串的排列
分析: 求字串中所有字元的全排列,實際上按照全排列的計算公式來理解,第一步是求出所有可能出現在第一個位置的字元,即用首個字元分別後餘下的字元交換;第二步是固定首個字元,餘下字元組成的子串進行第一步的
劍指offer(面試題21):根據給定條件劃分陣列
/* * 題目 * 輸入一個數組,實現一個函式來調整該陣列中數字的順序,使得所有奇數位於陣列的前半部分 * 偶數位於陣列的後半部分 * 同時考慮程式碼的可擴充套件行 */ #include <i
劍指offer(面試題31):棧的壓入和彈出序列
/* * 給定兩個序列,一個是棧的壓入序列,一個是彈出序列,判斷彈出序列能否匹配壓入序列 */ #include<iostream> #include<stack> usi
劍指Offer(面試題43~45)
面試題43:n個骰子的點數 題目:把n個骰子仍在地上,所有骰子朝上一面的點數之和為s。輸入n,打印出s的所有可能的值出現的概念。 解法一:基於遞迴求骰子點數,時間效率不夠高 要想求出n個骰子的點數和,可以先把n個骰子分成兩堆:第一堆只有一個,另一堆有n-1
劍指Offer(面試題33~34)
面試題33:把陣列排成最小的數 題目:輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這3個數字能排成的最小數字321323。 分析:一個非常直觀的解決大數問題的方法就是把
劍指Offer(面試題29~30)
面試題29:陣列中出現次數超過一半的數字 題目:陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入一個長度為9的陣列{1,2,3,2,2,2,5,4,2}。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。 bool g_
劍指Offer(二十五):復雜鏈表的復制
span page div 完成 oop conn 結果 新的 復雜鏈表 一、前言 本系列文章為《劍指Offer》刷題筆記。 刷題平臺:牛客網 書籍下載:共享資源 二、題目 輸入一個復雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針
《劍指offer》面試題32:從上到下列印二叉樹
題目一:不分行從上到下列印二叉樹 從上到下打印出二叉樹的每個節點,同一層的節點按照從左到右的順序列印。 二叉樹節點的定義如下: struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNo
【劍指offer】面試題32:從上到下列印二叉樹
題目1:不分行從上到下列印二叉樹。從上往下打印出二叉樹的每個節點,同一層的節點從左到右的順序列印。 牛客網連結:https://www.nowcoder.com/questionTerminal/7fe2212963db4790b57431d9ed259701 例如
【劍指offer】面試題25:從上往下列印二叉樹
二、解題思路: 採用一個例子說明:8,6,10,5,7,9,11. 對於第一層,只有根節點 “8”,第二層有節點“6”和“10”。 從根節點分析,為了能夠接下來列印節點為8的兩個子節點,我們應該在遍歷到
[劍指offer學習心得]之:從尾到頭列印連結串列
題目:輸入個連結串列的頭結點,從尾到頭反過來打印出每個結點的值。 測試用例 功能測試(輸入的連結串列有多個結點,輸入的連結串列只有一個結點) 特殊輸入測試(輸入的連結串列頭結點為 null) 思路 我們知道連結串列是從頭到尾輸出的,既然要解決
《劍指offer》面試題39 二叉樹的深度(java)
設計模式 博客 rgs 歷史 存在 復制 pri 取值 今天 摘要: 今天翻到了《劍指offer》面試題39,題目二中的解法二是在函數的參數列表中通過指針的方式進行傳值,而java是沒有指針的,所以函數要進行改造。然而我翻了下別人的java版本(我就想看看有什麽高大上的改造
《劍指offer》 面試題43 n個骰子的點數 (java)
r+ nal ret 次循環 分而治之 源碼 ava 面試 ble 引言:寫這篇文章的初衷只是想做個筆記,因為這道題代碼量有點大,有點抽象,而書上並沒有詳細的註釋。為了加深印象和便於下次復習,做個記錄。 原題:把n個骰子扔到地上,所有骰子朝上一面的點數之後為s. 輸入n,打
【劍指offer】面試題57(1):和為S的數字
題目 輸入一個遞增排序的陣列和一個數字S,在陣列中查詢兩個數,是的他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。 ps: 對應每個測試案例,輸出兩個數,小的先輸出。 思路
劍指offer面試題6:從尾到頭列印連結串列(Java實現)
題目:輸入一個連結串列的頭結點,從尾到頭反過來打印出每個結點的值。 思路:因為要實現從頭到尾遍歷,然後從尾到頭列印,也就是說第一個遍歷到的最後一個列印,最後遍歷到的第一個列印,這很明顯符合棧 “先進後出” 的特點,所以我們可以利用棧來實現這種順序。 測試用例: 功能測試:
《劍指offer》面試題答案彙總(Java版)
面試題2:實現Singleton模式 (1)餓漢模式 public class Singleton{ private static Singleton instance = new Singleton(); private Singleton(){}