有關遞迴演算法的面試題java實現

2021-07-24 03:54:21 字數 688 閱讀 1856

什麼叫遞迴?

遞迴是方法(函式)呼叫方法本身的一種程式設計技巧;

使用遞迴需要滿足2個條件:

1)有反覆執行的過程(呼叫自身)

2)有跳出反覆執行過程的條件(遞迴出口)

遞迴演算法的應用

1.求n!,即階乘;這大概是我第一次接觸遞迴,很簡單,卻又很能揭示遞迴的原理;

2.二叉樹的遍歷、反轉;

3.鍊錶的反轉;

下面來用**實現;

二叉樹的反**

public static node inverttree(node root) else

return root;

}

鍊錶的反**

public static node reverse1(node head) 

node rehead = reverse1(head.getnextnode());// 先反轉後續節點head.getnext()

head.getnextnode().setnextnode(head);// 將當前結點的指標域指向前一結點

head.setnextnode(null);// 前一結點的指標域令為null;

count++;

return rehead;// 反轉後新鍊錶的頭結點

}

java遞迴面試題

題目1 斐波那契數列 一列數的規則如下 1 1 2 3 5 8 13 21 34.求第30位數是多少,用遞迴演算法實現。public static int getfabonaccisequencebynum int num logic return getfabonaccisequencebynum...

java面試題 有關於繼承的面試題

面試題 1,方法過載和方法重寫的區別?方法過載能否改變返回值型別?方法過載是在本類內方法的定義一樣,引數型別,引數個數不同,返回值型別不同 方法重寫是指子類的方法定義和父類的方法定義相同。其引數型別,引數個數,返回值型別都必須相同 方法過載能否改變返回值型別,因為與返回值無關。2,this與supe...

SVM有關的面試題

svm的原理是什麼?svm是一種二類分類模型。它的基本模型是在特徵空間中尋找間隔最大化的分離超平面的線性分類器。間隔最大是它有別於感知機 1 當訓練樣本線性可分時,通過硬間隔最大化,學習乙個線性分類器,即線性可分支援向量機 2 當訓練資料近似線性可分時,引入鬆弛變數,通過軟間隔最大化,學習乙個線性分...