public ListNode FindKthToTail(ListNode head,int k) {
		if(head == null || k<=0)
			return null;
		Stack<ListNode> stack = new Stack<ListNode>();
		stack.add(head);
		while(head.next != null){
			head = head.next;
			stack.add(head);
		}
			ListNode knode = null ;
			for(int i = 0;i<k ;i++){
				knode = stack.pop();
			}
			return knode ;
    }
	
//定义两个指针,一个先走k-1步,然后一起走,当先走的指针到达终点时,
	//第二个指针到达链表的到数第k个节点。
	
	public ListNode FindKthToTail_1(ListNode head,int k) {
		if(head == null || k== 0){
			return null;
		}
		
		ListNode pahead = head ;
		ListNode pbebind = null ;
		for(int i = 0 ;i<k-1;++i){
			if(pahead.next != null){
				pahead = pahead.next;
			}else{
				return null;
			}
		}
		pbebind = head ;
		while(pahead.next != null){
			pahead = pahead.next;
			pbebind = pbebind.next;
		}
		return pbebind;
	}

当我们用一个指针遍历链表不能解决问题的时候,可以尝试用两个指针来遍历链表,可以让其中一个指针遍历的速度快一些(比如一次在链表上走上两步),或者让他先在链表上走上若干步