c_cpp 从链接列表的末尾开始编程第n个节点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 从链接列表的末尾开始编程第n个节点相关的知识,希望对你有一定的参考价值。

// https://www.geeksforgeeks.org/nth-node-from-the-end-of-a-linked-list/
#include <iostream>
#include <list>
using namespace std;

struct linked_list {
    int data;
    struct linked_list* next;
};
typedef struct linked_list node;

node* insert (node* head, int n) {
    node* list = (node*)malloc(sizeof(node*));
    list->data=n;
    list->next=head;
    head=list;
    return head;
}

int search (node* head, int n) {
    if (head!=NULL && n == 0)
        return head->data;
    node* list=head->next;
    n--;
    while (n>0 && list!=NULL) {
        list=list->next;
        n--;
    }
    if (list != NULL)
        return list->data;
    return -1;
}

int main () {
    int n,len=0;
    node* head=NULL;
    while (true) {
        cout<< "Enter the element, enter -9 to stop: ";
        cin>>n;
        if (n==-9)
            break;
        else
            head = insert(head,n);
    }
    node* temp = head;
    while (temp != NULL) {
        temp = temp->next;
        len++;
    }

    cout<< "Enter the index of the node from back: ";
    cin >> n;
    n=search(head, len-n);
    if (n==-1)
        cout<< "Index not found!";
    else
        cout<< "Element is "<<n;
}

以上是关于c_cpp 从链接列表的末尾开始编程第n个节点的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 19.从列表末尾删除第N个节点 - 中 - 2018.8.7

c_cpp 从列表末尾删除第N个节点http://oj.leetcode.com/problems/remove-nth-node-from-end-of-list/

java 19.从列表末尾删除第N个节点(#)。java

java 19.从列表末尾删除第N个节点(#)。java

java 19.从列表末尾删除第N个节点(#)。java

java 19.从列表末尾删除第N个节点(#)。java