java数据结构基础之交换节点内的值(不交换节点)

/**
         *  不交换节点,只交换节点内的值   相比交换两节点要简单些
         * @param number1
         * @param number2
         */
    public void swapValue(String number1, String number2){
            
            // 定义节点
            StudentNode t1,t2;
            t1=t2=null;
            // 定义一个头节点
            StudentNode p = head;
            
            //遍历,通过想要交换的两个学号number1 number2    先找到t1、t2
            while(p.getNext() != null){
                if(p.getNext().getStu().getNumber().equals(number1)){  // 查找 number1
                    t1 = p.getNext();
                }
                
                if(p.getNext().getStu().getNumber().equals(number2)){  // 查找 number1
                    t2 = p.getNext();
                }
                if(t1 != null && t2 != null){
                    break;
                }
                p=p.getNext();
            }
            // 临时保存t1的学生资料
            Student s = t1.getStu();     // 要交换的数据是隶属于Student类中的
            // 把t2节点中的学生资料赋值给t1节点
            t1.setStu(t2.getStu());
            // 把临时变量中的学生资料赋值给t2
            t2.setStu(s);

            // 以下方式为错误的写法
            /*
            String m1;
            m1 = t1.getStu().getNumber();
            
            String m2;
            m2 = t2.getStu().getNumber();
            
            String temp;
            
            temp = m1;
            m1 = m2;
            m2 = temp;
            */
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值