原创 二叉搜索樹與雙向鏈表_26

題目描述 輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只能調整樹中結點指針的指向。   package tree; import java.util.ArrayList; /* 二

原创 複雜鏈表的複製_25

題目描述 輸入一個複雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針random指向一個隨機節點),請對此鏈表進行深拷貝,並返回拷貝後的頭結點。(注意,輸出結果中請不要返回參數中的節點引用,否則判題程序會直接返

原创 二叉樹中和爲某一值的路徑_24

題目描述 輸入一顆二叉樹的根節點和一個整數,按字典序打印出二叉樹中結點值的和爲輸入整數的所有路徑。路徑定義爲從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。 注意 按字典序打印:表名是深度優先遍歷 路徑定義是從樹的根結點往下一直

原创 12_MySQL數據庫面試題

Mysql 1. 數據庫基礎知識 1.1 爲什麼使用數據庫 數據保存在內存 優點:存取速度快 缺點:數據不能永久保存 數據保存在文件 優點:數據永久保存 缺點:1)數據比內存操作慢,頻繁的IO操作。2)查詢數據不方便 數據保存在數

原创 二叉搜索樹的後序遍歷序列_23

題目描述 輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。 注意二叉搜索樹(二叉排序樹)和二叉樹的區別 二叉搜索樹:根節點的值大於其左子樹中任意一個

原创 5_JVM面試題

JVM面試題 1. Java內存區域 1.1 JVM 的主要組成部分及其作用? [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-KRoFAvfy-1593178863746)(C:/Users/lu

原创 從上往下打印二叉樹_22

題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右打印。 隊列 隊列(queue)是隻允許在一端進行插入操作,而在另一端進行刪除操作的線性表。 隊列是一種先進先出(First in First Out)的線性表,簡稱FIFO。允許

原创 棧的壓入、彈出序列_21

題目描述 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能爲該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5

原创 包含min函數的棧_20

題目描述 定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的min函數(時間複雜度應爲O(1))。 注意:保證測試中不會當棧爲空的時候,對棧調用pop()或者min()或者top()方法。     //peek() 查看此

原创 順時針打印矩陣_19

題目描述 輸入一個矩陣,按照從外向裏以順時針的順序依次打印出每一個數字,例如,如果輸入如下4 X 4矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,2,3,4,8,12,16,15

原创 09_變態跳臺階

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 分析:用f(n)表示青蛙跳上n階臺階的跳法數,設定f(0) = 1; 當n = 1 時,只有一種跳的方式,一階跳,f

原创 06_旋轉數組的最小數字

題目描述 把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。 輸入一個非遞減排序的數組的一個旋轉,輸出旋轉數組的最小元素。 例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小值爲1。 NOTE:

原创 樹的子結構_17

題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) 思路 第一步:在樹A中找到和樹B的節點一樣的節點R 第二部:判斷樹A以R爲根節點的子樹是不是包含樹B一樣的結構 package tre

原创 二叉樹的鏡像_18

題目描述 操作給定的二叉樹,將其變換爲源二叉樹的鏡像。     package tree; import java.util.LinkedList; import java.util.Queue; //二叉樹鏡像 public cl

原创 經典算法排序

經典排序算法 0、排序算法說明 0.1 排序的定義 對一序列對象根據某個關鍵字進行排序。 0.2 術語說明 穩定:如果a原本在b前面,而a=b,排序之後a仍然在b的前面; 不穩定:如果a原本在b的前面,而a=b,排序之後a可能會