一个单链表中返回倒数第n个元素
2015-01-16 11:40
267 查看
这里我们假设使用两个指针p1,p2;
p1指向头节点,p2指向节点n;
p1和p2一齐移动,始终保持距离R,R=n;
很容易得p2=null时,p1就是所要的值。
建立链表的代码在上一篇笔记上有写,在此直接调用
public class qu_n_zhi {
static int []input={12,35,12,78,15,76,21,58,54,1};
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 5;
LinkedListNode list = new LinkedListNode();
list = list.buildList(input);
System.out.print("倒数第n个数为:"+qu_n(list, n).data);
}
public static LinkedListNode qu_n(LinkedListNode head,int n){
if(head==null||n<1){
return null;
}
LinkedListNode p1=head;
LinkedListNode p2=head;
for(int i=0;i<n-1;i++){
if(p2==null){
return null;
}
p2=p2.link;
}
while(p2.link!=null){
p1=p1.link;
p2=p2.link;
}
return p1;
}
}
p1指向头节点,p2指向节点n;
p1和p2一齐移动,始终保持距离R,R=n;
很容易得p2=null时,p1就是所要的值。
建立链表的代码在上一篇笔记上有写,在此直接调用
public class qu_n_zhi {
static int []input={12,35,12,78,15,76,21,58,54,1};
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 5;
LinkedListNode list = new LinkedListNode();
list = list.buildList(input);
System.out.print("倒数第n个数为:"+qu_n(list, n).data);
}
public static LinkedListNode qu_n(LinkedListNode head,int n){
if(head==null||n<1){
return null;
}
LinkedListNode p1=head;
LinkedListNode p2=head;
for(int i=0;i<n-1;i++){
if(p2==null){
return null;
}
p2=p2.link;
}
while(p2.link!=null){
p1=p1.link;
p2=p2.link;
}
return p1;
}
}
相关文章推荐
- 008实现一个算法从一个单链表中返回倒数第n个元素(keep it up)
- cc150:实现一个算法从一个单链表中返回倒数第n个元素
- 2.2 实现一个算法从一个单链表中返回倒数第n个元素
- 008实现一个算法从一个单链表中返回倒数第n个元素(keep it up)
- Chapter 2 | Linked Lists--返回单链表倒数第n个元素及删除中间的某个节点
- 【每天学点算法题10.14】给出一个单链表,返回倒数第K个节点的值
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- LinkLists 链表中返回倒数第n个元素 @CareerCup
- 返回单链表的倒数第n个节点
- 笔试or面试——寻找单链表倒数第n个元素
- 返回线性链表的倒数第n个元素
- CareerCup之2.2 寻找单链表倒数第n个元素
- 坚持坚持!用Java写出删除一个链表的倒数第N个节点,并返回头节点(N总是可达的)
- 删除单链表的倒数第n个元素
- 返回单链表中倒数第N个元素问题
- 找出单链表的倒数第n个元素
- 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。
- 单链表查找倒数第N个元素&输出中间元素
- 给定单链表的头结点,如何快速的找到倒数的第n个节点?
- 【经典面试题】寻找单链表倒数第n个节点