给定链表中间某结点指针,删除链表中该结点
2015-01-20 20:26
393 查看
说真的,用java做这类带指针的题有无限的问题要解决,出现最多的就是java.lang.NullPointerException(空指针错误)
经我奋力研究,还是把结果给码出来了
public class quchuzhidin {
static int[]input={12,35,12,78,15,78,1};
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedListNode list = new LinkedListNode();
list = list.buildList(input);
int a=3;
//我把链表分两次打印,共有三步,第一步是打印删除a节点前的节点,第二步是删除a节点,第三步是打印a之后的节点
//这样就能得到想要的结果了,但感觉好像有点偏离原题的样子
for(int i=0;i<a-1;i++){
System.out.println("link info is "+list.data);
list=list.link;
}
if(deleteNode(list)){
while(list.link!=null){
System.out.println("link info is "+list.data);
list=list.link;
}
}
}
public static boolean deleteNode(LinkedListNode n){
if(n==null||n.link==null){
return false;
}
LinkedListNode next = n.link;
n.data = next.data;
n.link = next.link;
return true;
}
}
经我奋力研究,还是把结果给码出来了
public class quchuzhidin {
static int[]input={12,35,12,78,15,78,1};
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedListNode list = new LinkedListNode();
list = list.buildList(input);
int a=3;
//我把链表分两次打印,共有三步,第一步是打印删除a节点前的节点,第二步是删除a节点,第三步是打印a之后的节点
//这样就能得到想要的结果了,但感觉好像有点偏离原题的样子
for(int i=0;i<a-1;i++){
System.out.println("link info is "+list.data);
list=list.link;
}
if(deleteNode(list)){
while(list.link!=null){
System.out.println("link info is "+list.data);
list=list.link;
}
}
}
public static boolean deleteNode(LinkedListNode n){
if(n==null||n.link==null){
return false;
}
LinkedListNode next = n.link;
n.data = next.data;
n.link = next.link;
return true;
}
}
相关文章推荐
- 给定链表中间某结点指针,删除链表中该结点
- 给定链表的头指针和一个结点指针,在O(1)时间删除该结点。
- 给定链表的头指针和一个结点指针,在O(1)时间删除该结点
- LinkLists 删除链表中的一个给定指针的结点 @CareerCup
- 设一个没有头结点指针的单链表。一个指针指向此单链表中间的一个结点(不是第一个,也不是最后一个结点),将该结点从单链表中删除,要求时间复杂度O(1)。
- 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。
- 13\给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点,
- 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。
- 给定链表中间节点指针,删除中间节点的方法
- 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点
- 给定链表的头指针和一个结点指针,在O(1)时间删除该结点
- 给定链表的头指针和一个结点指针,在O(1) 时间删除该结点
- [google面试CTCI] 2-3 只给定链表中间节点指针,如何删除中间节点?
- [google面试CTCI] 2-3 只给定链表中间节点指针,如何删除中间节点?
- 给定链表中间节点指针,删除中间节点的方法
- 给定链表的头指针和一个结点指针,在O(1) 时间删除该结点
- 面试题 单向链表(无头结点)一个指针指向其中的一个结点,如何删除这个结点?
- c++中对单链表操作---合并两个链表&&单链表逆序&&删除链表中的中间结点
- 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
- 链表分割 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以