• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

O(1)时间复杂度删除链表节点Java代码示范

JAVA相关 水墨上仙 3085次浏览

O(1)时间复杂度删除链表节点Java代码演示
转自:http://blog.csdn.net/zhangheliang2010/article/details/8089646

package lineartable;
/**
 * 链表节点类
 */
class Node{
    public String value;
    public Node next;
    public Node(String value){
        this.value=value;
        this.next=null;
    }
}
/**
 * 链表类
 */
public class LinkTable {
    public Node head;
    public LinkTable(Node node){
        this.head=node;
    }
    /**
     * 增加节点
     */
    public void addNode(Node node){
        Node end=head;
        while(end.next!=null){
            end=end.next;
        }
        end.next=node;
    }
    /**
     * 删除节点
     * 时间复杂度为O(1)无需遍历链表元素
     */
    public void delNode(Node node){
        node.value=node.next.value;
        node.next=node.next.next;
    }
    /**
     * 打印链表元素
     */
    public void print(){
        Node index=this.head;
        while(index!=null){
            System.out.print(index.value+"-->");
            index=index.next;
        }
        System.out.println("NULL");
    }
    
    public static void main(String [] args){
        LinkTable lt=new LinkTable(new Node("中国"));
        lt.addNode(new Node("美国"));
        Node japanNode=new Node("日本");
        lt.addNode(japanNode);
        lt.addNode(new Node("意大利"));
        lt.addNode(new Node("德国"));
        lt.addNode(new Node("荷兰"));
        lt.print();
        
        lt.delNode(japanNode);
        lt.print();
    }
}
/**
运行结果:
中国-->美国-->日本-->意大利-->德国-->荷兰-->NULL
中国-->美国-->意大利-->德国-->荷兰-->NULL
*/


喜欢 (0)
加载中……