输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 正常返回倒数第k个结点指针,异常返回空指针.要求:(1)正序构建链表;(2)构建后要忘记链表长度。数据范围:链表长度满足1≤n≤1000 ,k≤n ,链表中...
这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 思路:定义快慢双指针,先让快指针先走k步,然后双指针一起移动,完成只需要遍历一遍 struct ListNode* getKthFromEnd(struct ListNode* phead, int k){ struct ListNode* pfast = phead ; ...
C语言:【单链表】查找单链表的倒数第k个节点,要求只能遍历一次 数据结构与算法 #include<stdio.h>#include<assert.h>#include<stdlib.h>typedefintDataType;typedefstructSListNode{DataType data;structSListNode*next;}SListNode;SListNode*BuyNode(DataType x){SListNode*next=(SListNode*)malloc(sizeof(SListNode...
4.输入一个链表,输出该链表中倒数第k个结点。OJ链接 5.将两个有序链表合并为一个新的有序链表并...
运行本文所述实例可实现输入一个单向链表,输出该链表中倒数第k个节点。 具体实现方法如下: /* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include <iostream> using namespace std; int array = 5, 7, 6, 9, 11, 10, 8; ...
题目描述 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值...
输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点。 2 分析 设置两个指针p1 p2指向链表头节点, ...
1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16 转换成双向链表 4=6=8=10=12=14=16。 首先我们定义的二元查找树 节点的数据结构如下: ...
while(k--) { if(head == NULL) { cout <<"k is bigger than the length of the link"<< endl; returnNULL; } head = head->next; } while(head) { head = head->next; pKnode = pKnode->next; } returnpKnode; } voidmain() ...
c_c++面试100题