Java教程

算法之链表倒数第k个节点

本文主要是介绍算法之链表倒数第k个节点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 

 分析和思路:这个需要自己创建链表

 1 #include "iostream"
 2 
 3 using namespace std;
 4 struct ListNode
 5 {
 6 
 7     int  m_nKey;
 8 
 9     ListNode* m_pNext;
10 
11 };
12 
13 
14 int main()
15 {
16     ListNode* head;
17     head = (ListNode*)malloc(sizeof(ListNode));
18     head->m_nKey = -1;
19     head->m_pNext = NULL;
20     ListNode* p = head;
21     int number = 0;
22     while (cin >> number)
23     {
24        
25         
26         while (number--)
27         {
28             int value = 0;
29             cin >> value;
30             ListNode* temp = (ListNode*)malloc(sizeof(ListNode));
31             temp->m_nKey = value;
32             temp->m_pNext = NULL;
33             p->m_pNext= temp;
34             p = p->m_pNext;
35 
36         }
37         
38         int k = 0;
39         cin >> k;
40         if(k==0)
41         
42          {
43               cout <<0<< endl;
44             continue;
45                 //return 0;
46         }
47         ListNode* q = head->m_pNext;
48         ListNode* r = head->m_pNext;
49         for (int i = 0; i < k; i++)
50         {
51           
52             q = q->m_pNext;
53         }
54         while (q != NULL && r!= NULL)
55         {
56             q = q->m_pNext;
57             r = r->m_pNext;
58         }
59         cout << r->m_nKey << endl;
60     }
61     return 0;
62 }

 

这篇关于算法之链表倒数第k个节点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!