码迷,mamicode.com
首页 > 其他好文 > 详细

CTCI 2.2

时间:2014-07-08 00:37:17      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   for   io   

Implement an algorithm to find the kth to last element of a singly linked list.

Classical "Runner" Technique of linkedlist

/*Use two pointers, forward one K nodes, then the two pointers form a "window" contains K nodes.
Then move two pointer one step by one step until the first one reach the end, return the second node.
Pay attention to the situation when k is 0 or k is the length of the linked list, there migth be some 
tricks. 

*/
public class KToLastNode {
    public Node kToLastNode(Node head, int k) {
        Node sent = new Node(0); sent.next = head;
        Node first = sent;
        while(k > 0) {
            first = first.next;
            k--;
        }
        Node second = sent;
        while(first != null) {
            second = second.next;
            first = first.next;
        }
        return second;
    }

    public void print(Node head) {
        Node temp = head;
        while(temp != null) {
            System.out.print(temp.val + " ");
            temp = temp.next;
        }
        System.out.println("");
    }

    public static void main(String[] args) {
        Node node1 = new Node(1); Node node11 = new Node(1); Node node111 = new Node(1);
        Node node2 = new Node(2); Node node22 = new Node(2); Node node3 = new Node(3);
        node1.next = node11; node11.next = node2; node2.next = node111; node111.next = node3; node3.next = node22;
        Node head = node1;
        KToLastNode kt = new KToLastNode();
        kt.print(kt.kToLastNode(head, 2));
    }
}

 

CTCI 2.2,布布扣,bubuko.com

CTCI 2.2

标签:des   style   blog   color   for   io   

原文地址:http://www.cnblogs.com/pyemma/p/3830522.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!