本文主要是介绍链表 获取链表的倒数第k个元素,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路1:暴力 ,先暴力一次链表,记录链表的长度n,第二次遍历n-k+1个元素,返回,一共需要2n+1-k个
思路2:两个指针,左右指针相差k-1个距离,有指针到达链表末尾时,做指针指向倒数第k个元素.(经典思路,两个指针相差k个间隔)
思路2实现代码
public static Node getFindNFromEndToList(Node head,int k){Node fisrt=head;Node second=head;int i=0;while (i<k){fisrt=fisrt.next;i++;}while(fisrt!=null){fisrt=fisrt.next;second=second.next;}return second;}public static void main(String[] args) {Node node1=new Node(1);Node node2=new Node(2);Node node3=new Node(3);Node node4=new Node(4);Node node5=new Node(5);Node node6=new Node(6);node1.next=node2;node2.next=node3;node3.next=node4;node4.next=node5;node5.next=node6;Node findNFromEndToList = getFindNFromEndToList(node1, 2);System.out.println(findNFromEndToList.getData());}
这篇关于链表 获取链表的倒数第k个元素的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!