タイトル説明
入力されたリンクリスト、リンクリスト出力の逆数k番目のノード。
1 / ** 2 *リストの入力、リンクされたリスト内のノードk番目の逆の出力。 3 * @author ソニア 4 *思考:スタックk回ポップ次いで、スタック、リンクされたリスト内のすべてのノードを新しいスタックを作成するために、初めてK Kは最後から二番目のノードです。(これは、スタックを構築するためにあまりにも面倒必要です) 5つの ノードの合計数を取得するために、再び最初のトラバーサル:* 2つのアイデア。次いで、次のノードNKでk番目のノードの逆数です。 6 * 7 * 8 * / 9 / * //このクラスは、再びここで再定義が定義されていない 10 * {クラスListNode 11。 INTヴァル; 12である ListNode次に= NULL; 13である 14 ListNode(INTヴァル){ 15 本ヴァル= .val; 16 } 17 } 18である * / 19。 20 21 パブリック クラスN14_FindKthToTail { 22 23 公衆 ListNode FindKthToTail(ListNodeヘッド、int型K){ 24 であれば(ヘッド== NULL)戻りヘッド。 25 int型のカウント= 0 ; 26 ListNodeのP。 27 のための(!; P = P =ヘッドはnull ; P = {p.next) 28 のカウント++ ; 29 } 30 であれば(数<K)リターン ヌル。 31 、P = ヘッド。 32 のためには、(int型 I = 1; I <=カウント-kは、iは++ ){ 33 、P = p.next。 34 } 35 リターンP。 36 37 } 38 39 40 公共 静的 ボイドメイン(文字列[]引数){ 41 // TODO自動生成方法スタブ 42 N14_FindKthToTail N14 = 新しいN14_FindKthToTail()。 43 ListNode listNode = 新しい ListNode(1 )。 44 ListNode L2 = 新しい ListNode(2); 45 ListNode L3 = 新しい ListNode(3 )。 46 ListNode L4 = 新しい ListNode(4 )。 47 ListNode L5 = 新しい ListNode(5 )。 48 listNode.next = L2。 49 L2.next = L3。 50 L3.next = L4。 51 L4.next = L5。 52 ListNodeのP。 53 、P = n14.FindKthToTail(listNode、1 )。 54 のSystem.out.println(p.val)。 55 } 56 57 }