手机
当前位置:查字典教程网 >编程开发 >Java >找出链表倒数第n个节点元素的二个方法
找出链表倒数第n个节点元素的二个方法
摘要:方法一:利用两个指针p,q,首先将q往链表尾部移动n位,然后再将p、q一起往后移,那么当q达到链表尾部时,p即指向链表的倒数第n个节点。复制...

方法一:利用两个指针p,q,首先将q往链表尾部移动n位,然后再将p、q一起往后移,那么当q达到链表尾部时,p即指向链表的倒数第n个节点。

复制代码 代码如下:

node* find_nth_to_last(node* head,int n) { if(head==NULL || n<1) return NULL; node*p,*q; p=q=head; while(q!=NULL && n--){ q=q->next; } if(n>=0) return NULL; while(p!=NULL && q!=NULL){ p=p->next; q=q->next; } return p; }

方法二:可以先计算出节点个数,即从头到尾遍历一次链表,得到个数m,那么倒数第n个元素也即第m-n+1个元素.与方法一是同样的思维,只是具体操作方式不同,代码略.

JAVA代码:

复制代码 代码如下:

LinkedListNode nthToLast(LinkedListNode head, int n) { if (head == null || n < 1) { return null; } LinkedListNode p1 = head; LinkedListNode p2 = head; for (int j = 0; j < n - 1; ++j) { // skip n-1 steps ahead if (p2 == null) { return null; // not found since list size < n } p2 = p2.next; } while (p2.next != null) { p1 = p1.next; p2 = p2.next; } return p1; }

【找出链表倒数第n个节点元素的二个方法】相关文章:

设置tomcat启用gzip压缩的具体操作方法

用递归查找有序二维数组的方法详解

java中删除数组中重复元素方法探讨

将字符串数字格式化为样式1,000,000,000的方法

java 页面url传值中文乱码的解决方法

java中常用的排序方法

java判断远程服务器上的文件是否存在的方法

java dom4j解析xml用到的几个方法

基于java中正则操作的方法总结

解析Java实现随机验证码功能的方法详解

精品推荐
分类导航