`
128kj
  • 浏览: 601401 次
  • 来自: ...
社区版块
存档分类
最新评论

2009计算机考研题:查找链表中倒数第k个结点

阅读更多


原理:两个指针先都指向头指针的下一节点,一个指针先走K-1步,然后俩指针再一起走,后走的指针所指为所求,注意边界处理。

    class Node{  
        Node link;  
        int data;  
          
        public Node(){}  
        public Node(int m) {  
            data = m;  
        }  
          
    }  
    public class MyLinkList {  
          
        public Node createLinkList(int[] a){  
              
            Node head_node = new Node();  
            Node temp_node = head_node;  
            for(int m : a){  
                Node n = new Node(m);  
                temp_node.link = n;  
                temp_node = n;  
            }  
            return head_node;  
        }  
          
        public int printK_NodeOfCountFromEnd(Node head_node,int k){  
              
            if(null == head_node || k <= 0)  
                return 0;  
            Node temp1_node = head_node.link;  
            for(int i = 0; i < k-1 && null != temp1_node; i++)  
                temp1_node = temp1_node.link;  
            if(null == temp1_node)  
                return 0;  
            Node temp2_node = head_node.link;  
            while(null != temp1_node.link){  
                temp1_node = temp1_node.link;  
                temp2_node = temp2_node.link;  
            }  
            System.out.println(temp2_node.data);  
            return 1;  
        }  
        public static void main(String[] args){  
            MyLinkList list = new MyLinkList();  
            int[] a = {1,4,2,5,3};  
            list.printK_NodeOfCountFromEnd(list.createLinkList(a), 2);  
        }  
          
    }  


运行:
C:\test>java  MyLinkList
5

文章转自:[url]http://blog.csdn.net/nash_/article/details/8205491
[/url]
源码:
  • 大小: 43.9 KB
分享到:
评论

相关推荐

    统考类考研专业课—计算机基础班—数据结构讲义

    以2009年的真题为例,题目要求在不改变链表的前提下查找链表中倒数第k个位置上的结点,并输出该结点的data域的值。 - **算法设计思路**:使用两个指针p和q,初始时均指向头结点的下一个结点。先让p指针沿链表移动至...

    计算机考研数据结构统考历年真题答案2009-2018.doc

    - 提供了一种算法,用于查找链表中的倒数第k个结点。具体步骤包括初始化两个指针p和q,通过控制p的移动速度来实现q指向倒数第k个结点的目标。 **知识点解析:** 1. **双指针技巧:** - 使用双指针技术是一种常见且...

    09计算机考研真题-数据结构

    查找单链表中倒数第k个结点** - **题目解析**: 本题考查单链表的基本操作及算法设计能力。 - **答案解析**: 可以使用双指针技术来解决这个问题。首先让一个指针先走k步,然后再让另一个指针从头开始移动,当先走...

    计算机考研数据结构真题

    在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data值,并返回1;否则,只返回0。要求: (1)描述算法的基本设计思想 (2)描述...

    计算机考研数据结构统考历年真题2009-2018.doc

    10. **链表操作**:寻找链表中倒数第k个节点的问题,可以使用快慢指针法,快指针先移动k步,然后两个指针同步移动,当快指针到达末尾时,慢指针指向的就是倒数第k个节点。 11. **栈的序列**:根据进栈和退栈规则,...

    09计算机考研统考题

    - **解析**:题目要求设计算法查找链表中倒数第K个结点,涉及链表的基本操作和算法设计。 3. **内存访问时间计算** - **知识点**:内存访问时间是衡量计算机性能的重要指标。 - **解析**:题目提供了虚拟地址和...

    最新408真题及其他资料

    1. 查找单链表中倒数第k个结点的问题,使用双指针技术在不改变链表前驱的情况下完成了查找任务。这是数据结构中链表操作的常见问题。 2. 循环左移一维数组中的元素,这里通过分段逆置数组的方式来解决,是一个高效...

    数据结构考研真题(09-12)

    - **题目描述**:给出一个带有表头结点的单链表,要求查找链表中倒数第k个位置上的结点。 - **解析**: 1. **基本设计思想**:使用双指针技术,一个快指针首先向前移动k步,然后两个指针同时移动,当快指针到达链表...

    数据结构讲义

    - **题目背景**:已知一个带有表头结点的单链表,要求设计算法查找链表中倒数第k个位置上的结点。 - **算法思路**:定义两个指针变量p和q,初始时均指向头结点的下一个结点。首先让p指针移动到第k个结点,然后q指针...

    计算机数据结构今年考研真题及答案(供参考).docx

    12. 设计一个尽可能高效的算法,查找链表中倒数第 k 个地点上的结点,算法的基本设计思想是使用双指针技术,一个指针从头指针 list 开始移动,另一个指针从头指针 list 开始移动到第 k 个地点,然后两个指针同时移动...

    数据结构考研知识点总结.doc

    在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第 k 个位置上的结点〔k 为正整数〕。 分析:此题考查的是线性表的链式存储,主要是线性表的基本操作的应用。做此题时要把握算法的效率。 3. 〔...

    考研统考数据结构

    2. **题目解析**:题目要求设计一个算法来查找单链表中倒数第k个位置上的结点。为了高效地解决这个问题,可以使用双指针技术,即设置两个指针,一个快指针和一个慢指针,让快指针先走k步,然后同时移动两个指针,当...

    816回忆版.docx

    5. **链表倒数第k个位置值查找** - 题目:设计一个算法,找出一个链表的倒数第k个位置的值,有则返回1并输出,否则返回0。 - **解析**:可以使用双指针技巧,其中一个指针先走k步,之后两个指针同时移动,当先走的...

Global site tag (gtag.js) - Google Analytics