查找单链表中的倒数第k个节点

	//思路
	//1.编写一个方法,接收head节点,同时接收一个index
	//2.index 表示是倒数第index个节点
	//3.先把链表从头到尾遍历,得到链表的长度getLength
	//4.得到size后,我们从链表的第一个开始遍历(size-index)个,就可以得到
	//5.如果找到了就返回该节点,否则就返回null
	public static Node findLastIntexNode(Node head,int index){
	    //判断如果链表为空返回null
	    if (head.next == null){
	        return null;//没有找到
	    }
	    //第一个遍历得到链表长度(节点个数)
	    int size = getLength(head);
	    //第二次遍历size-index位置,这就是我们第k个节点
	    //先做index的校验
	    if(index <= 0 || index > size){
	        return null;
	    }
	    //定义给辅助变量 for 循环得到我们倒数第k个节点
	    Node cur = head.next;
	    for (int i = 0;i < size-index;i++){
	        cur = cur.next;
	    }
	    return cur;
	
	}

测试测试

	//测试得到倒数第k个的元素
	Node res = findLastIntexNode(singleLinkedList.getHead(), 2);
	System.out.println("res="+res);

你可能感兴趣的:(数据结构,链表,java,数据结构)