JAVA 已知线性表的元素按递增顺序排列,并以带头结点的单链表作存储结构。试编写一个删除表中所有值大于min且小于max的元素(若表中存在这样的元素)的算法

运行结果如下:

定义结点类

public class ListNode{
    int data; //数据域
    ListNode next; //下一结点
    ListNode(int x){ //当传int参数时,当前节点为最后一个节点,则指向下一结点为空
        data=x;
        next=null;
    }
}

创建单链表,实现删除大于min且小于max的元素

public class removeList {
    public static void main(String[] args) {
        ListNode head_LA=new ListNode(0);
        ListNode head_LA_=head_LA; //记录头节点,用于输出删除元素前的链表
        ListNode LA=head_LA;
        LA.next=new ListNode(1);
        LA.next.next=new ListNode(2);
        LA.next.next.next=new ListNode(3);
        LA.next.next.next.next=new ListNode(4);
        LA.next.next.next.next.next=new ListNode(5);
        int min=1;
        int max=4;
        System.out.print("删除元素前:");
        while (head_LA_ !=null){
            System.out.print(head_LA_.data+"  ");
            head_LA_=head_LA_.next;
        }
        System.out.println(" ");
        ListNode head=remove(head_LA,min,max);
        System.out.print("删除元素后:");
        while (head !=null){
            System.out.print(head.data+"  ");
            head=head.next;
        }
    }
    public static ListNode remove(ListNode LA,int min,int max){
        ListNode head_LB=new ListNode(0);
        ListNode LB=head_LB;
        ListNode p=LA;
        while (p !=null ){
            ListNode r=p.next;
            if(p.data<=min || p.data>=max){ //不在(min,max)范围内的结点,则进入LB
                LB.next=p;
                p.next=null;
                LB=LB.next;
            }
            p=r;
        }
        return LA;
    }
}

题目集合 

JAVA 有一个带头结点的单链表head,其ElemType类型为char,设计一个算法使其元素递增有序

JAVA 已知线性表的元素按递增顺序排列,并以带头结点的单链表作存储结构。试编写一个删除表中所有值大于min且小于max的元素(若表中存在这样的元素)

C++ 设计一个算法,将两个元素有序(从小到大)的顺序表合并成一个有序顺序表(使用指针传参)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值