Leetcode: Sword는 Offer 22를 나타냅니다. 연결 리스트 하단에서 k번째 노드

코드 구현의 아이디어:
헤드 노드를 가리키도록 두 개의 포인터(node1, node2)를 설정 합니다
.
그런 다음 node1, node2가 동시에 앞으로 이동하게 하면 node1이 마지막 노드로 갈 때까지 Go
이 시점에서 node2는 정확히 맨 아래에서 k번째 노드에 있습니다.

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
    
    
public:
    ListNode* getKthFromEnd(ListNode* head, int k) {
    
    
        ListNode * node1 = head;
        ListNode * node2 = head;
        int flag = k;
        for(;flag>1 ; flag-- ){
    
    
            node1 = node1->next;
        }
        for(;node1->next!=nullptr; node1=node1->next){
    
    
            node2 = node2->next;
        }
        
        return node2;

    }
};

추천

출처blog.csdn.net/weixin_43579015/article/details/123271504