docker真的爽爆了 2022-08-21 08:50 采纳率: 66.7%
浏览 19
已结题

关于Java用链表实现减法的问题,如何解决?

Java用链表实现减法,咋判断是上第一个数比第二个数大还是第二个数比第一个数大,我判断过后,链表回不去了>︿<

    public Linkedlist sub(){
        Linkedlist res=new Linkedlist();Node head=new Node();Node pre=head;int ne=0;
        while (this.first.head!=null && this.second.head!=null) {
            if (compare()) {
                int ae=this.first.head.val-this.second.head.val-ne;
                if (ae<0) {ae=-ae;pre.next=new Node(ae);ne=1;}
                else{pre.next=new Node(ae);ne=0;}
                this.first.head=this.first.head.next;this.second.head=this.second.head.next;pre=pre.next;
            }
            else{
                int ae=-this.first.head.val+this.second.head.val-ne;if (ae<0) {ae=-ae;pre.next=new Node(ae);ne=1;}else{pre.next=new Node(ae);ne=0;}
                this.first.head=this.first.head.next;this.second.head=this.second.head.next;pre=pre.next;
            }
        }
        while (this.first.head==null && this.second.head!=null) {
            int ae=this.second.head.val-ne;if (ae<0) {ae=-ae;pre.next=new Node(ae);ne=1;}else{pre.next=new Node(ae);ne=0;}
            pre=pre.next;this.second.head=this.second.head.next;if (this.second.head==null) {pre.next=new Node('-');break;}
        }
        while (this.first.head!=null && this.second.head==null) {
            int ae=this.first.head.val-ne;if (ae<0) {ae=-ae;pre.next=new Node(ae);ne=1;}else{pre.next=new Node(ae);ne=0;}
            pre=pre.next;this.first.head=this.first.head.next;
        }
        if (ne==1) {pre.next=new Node('-');}
        return res;
    }
    public boolean compare(){
        Linkedlist te=this.first;Linkedlist de=this.second;
        while (te.head!=null && de.head!=null) {
            te.head=te.head.next;de.head=de.head.next;
        }
        if (te.head == null && de.head!=null) {return true;}
        else{return false;}
    //    if  else (this.first.head==null && this.second.head==null) {return false;}
        
    }

这是我的节点结构

class Node{
    Node next=null;
    int val;
    public Node(){}
    public Node(int val){
        this.val=val;
    }
    public Node(int val,Node next){
        this.val=val;this.next=next;
    }
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月29日
    • 创建了问题 8月21日

    悬赏问题

    • ¥15 C++ 句柄后台鼠标拖动如何实现
    • ¥15 有人会SIRIUS 5.8.0这个软件吗
    • ¥30 comsol仿真等离激元
    • ¥15 静电纺丝煅烧后如何得到柔性纤维
    • ¥15 (标签-react native|关键词-镜像源)
    • ¥100 照片生成3D人脸视频
    • ¥15 伪装视频时长问题修改MP4的时长问题,
    • ¥15 JETSON NANO
    • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
    • ¥20 关于 openpyxl 处理excel文件地问题