3.14 連結串列中倒數第k個結點
輸入一個連結串列,輸出該連結串列中倒數第k個結點。
思路: 先求出長度, 再計算出倒數第K個, 是整數第幾個.
struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ListNode* val = NULL; do { if (NULL == pListHead) { break; } ListNode* p = pListHead; // 計算連結串列長度 int listSiz = 0; while (p != NULL) { listSiz++; p = p->next; } int sortIndex = listSiz - k; p = pListHead; while (sortIndex-- && p != NULL) { p = p->next; } val = p; } while (0); return val; }
測試:
相關推薦
3.14 連結串列中倒數第k個結點
輸入一個連結串列,輸出該連結串列中倒數第k個結點。 思路: 先求出長度, 再計算出倒數第K個, 是整數第幾個. struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(
[劍指offer] --14.連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = v
14 連結串列中倒數第k個結點
定義兩個指標start和end,讓start先走k步(在走的過程中,需要判斷start是否指向NULL,指向的話說明連結串列長度小於k,直接返回NULL),然後再判斷當前start是否指向NULL,指向的話說明量表長度等於k,直接返回end,否則令它們同時往後移動,當start到達連結串列末
劍指offer(14)連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 解題思路 輸出的是 倒數第k個連結串列,可以參考Leetcode刪除連結串列倒數節點的那個演算法題 一共有兩種解法,一是兩遍遍歷的,二是一遍遍歷的。 兩次遍歷的思路就是先遍歷一遍 求出連結串列長度,然後在遍歷,輸出N-k+1的節點
劍指offer刷題記錄14——連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 想到利用雙指標標記頭部,移動第二個指標直到距離為k - 1,再同時移動兩個指標,當第二個指標指向尾部,第一個指標則指向倒數第k個結點。 解法一: public class Solution {
14.連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 題目解答 方法一: /* public class ListNode { int val; ListNode next = null; ListNode(int val
14.連結串列中倒數第K個結點-劍指offer-Python2.7
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 思路1 要想找到倒數第k個結點,我們可以先求出連結串列的總長度,然後就可以找到倒數第k個結點在連結串列中的位置,之後再遍歷一遍連結串列,直
劍指offer66題--Java實現,c++實現和python實現 14.連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 C++實現 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/
劍指 Offer - 14:連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點 題目連結:https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a public class Solution {
劍指offer-14:連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 思路 兩個指標,先讓第一個指標和第二個指標都指向頭結點,然後再讓第一個指正走(k-1)步,到達第k個節點。然後兩個指標同時往後移動,當第一個結點到達末尾的時候,第二個結點所在位置就是倒數第k個節點處。 程式碼
【劍指offer{11-14}】二進位制中1的個數、數值的整數次方、調整陣列順序使奇數位於偶數前面、連結串列中倒數第k個結點
二進位制中1的個數、數值的整數次方、調整陣列順序使奇數位於偶數前面、連結串列中倒數第k個結點 二進位制中1的個數 題目描述 輸入一個整數,輸出該數二進位制表示中1的個數。其中負數用補碼錶示。 C+
劍指offer第22:連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 class Solution: def FindKthToTail(self, head, k): # write code here if k<=0 or head
連結串列中倒數第k個結點 java
連結串列中倒數第k個結點 java 題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 解析: 最佳程式碼:Java程式碼,通過校驗。程式碼思路如下:兩個指標,先讓第一個指標和第二個指標都指向頭結點,然後再讓第一個指正走(k-1)步,到達第k個節點。然後兩個指標同時往後
【劍指Offer】12連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 時間限制:1秒;空間限制:32768K;本題知識點: 連結串列 解題思路 注意返回的是Node,而不是Node的Value。注意處理k超出範圍的異常情況。 # -*- coding:utf-8 -*- # class
劍指offer刷題之連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # s
劍指Offer14:連結串列中倒數第k個結點
思路: 先判斷k是否小於1,若是則什麼都不返回。 反之,將head.val的值依次加入到列表l中,然後在判斷k是否大於l的長度,若是則什麼都不返回,反之返回l[-k]。 # -*- coding:utf-8 -*- # class ListNode: # def __
輸出單向連結串列中倒數第k個結點/華為機試(C/C++)
題目描述 輸入一個單向連結串列,輸出該連結串列中倒數第k個結點,連結串列的倒數第1個結點為連結串列的尾指標。 連結串列結點定義如下: struct ListNode { int
劍指offer之連結串列中倒數第K個結點
連結串列中倒數第K個結點 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 思路:使用兩個指標,先讓第一個指標和第二個指標都指向頭結點,然後再讓第一個指正走(k-1)步,到達第k個節點 然後兩個
劍指offer--連結串列中倒數第k個結點
題目描述 輸入一個連結串列,輸出該連結串列中倒數第k個結點。 解析 可以先便利一遍求出連結串列總長,再遍歷第二遍求出結點。 或者定義兩個指標,一個先遍歷到第k個結點,再兩個一起往後遍歷,前一個為
輸入一個連結串列,輸出該連結串列中倒數第k個結點。
兩種思路: 1)用棧的思想,先把連結串列反轉,然後再找出第k個節點。 先把所有節點放進棧內,同時統計節點個數,若總節點數小於k則返回null。在彈出棧,倒數k即為彈出的第k個值。 2)定義兩個指標,一個指標先走k步,再兩者一起往後走,當第一個指標到達終點的時候,第二個指