删除单向链表中间的某个节点,假定你只能访问该节点

 1 /*
 2      * 在这个问题中你访问不到链表的首节点,只能访问那个待删除节点,其实我们可以这样想
 3      * 就是把后继结点的值复制到当前节点,当前节点的下一个地址指向后继结点的下一个地址
 4      * 把删除当前节点的问题转化为删除后继结点的问题
 5      * 在这里要注意以下,就是如果待删除的是链表的尾节点,则这个问题无解
 6      * */
 7     public static boolean deleteNode(Node node)
 8     {
 9         if(node==null || node.next==null)
10             return false;
11         Node n = node.next;
12         node.data=n.data;
13         node.next=n.next;
14         return true;
15     }

 

posted on 2014-09-05 11:12  daocaorendeshijie  阅读(210)  评论(0编辑  收藏  举报

导航