请教大家一个java问题,想了好久没想出来。

一点点小毛病 2017-03-02 09:05:26


代码哪里有问题,测试通不过

import java.util.*;
/*
public class ListNode {
int val;
ListNode next = null;

ListNode(int val) {
this.val = val;
}
}*/
public class Plus {
public ListNode plusAB(ListNode a, ListNode b) {
// write code here

//我考虑分别把两个链表中的整数取出来,加完后再放入新的链表中
int A=0;
int B=0;
int count=0;
int C=0;
ListNode rHead = new ListNode(-1);
ListNode result = rHead;

while(a!=null){

A+=a.val*(10^count);//得到链表a中存放的整数
count++;
a=a.next;
}
count=0;
while(b!=null){

B+=b.val*(10^count);//得到链表b中存放的整数
count++;
b=b.next;
}

C = A+B;
while(C/10!=0){

result.next=new ListNode(C%10); //依次将C的值从低位到高位存在链表result中
result=result.next;
C=C/10;


}
result.next = new ListNode(C);

return rHead.next;

}
}
...全文
266 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
public class ListNodeTest {
	public static void main(String[] args) {
		MyNumber num1 = new MyNumber(12, 4, 3, 1, 6, 7, 9);
		MyNumber num2 = new MyNumber(0, 2, 1, 3, 4);

		System.out.println(MyNumber.addition(num1, num2));
		System.out.println(num1);
		System.out.println(num2);
	}
}

class MyNumber {
	private int size;
	private ListNode first = null;
	private ListNode last = null;

	public MyNumber(int... values) {
		if (values == null) {
			throw new RuntimeException();
		}
		if (values[values.length-1] < 1) {
			throw new RuntimeException();
		}
		first = new ListNode(values[0], null);
		last = first;
		size++;
		for (int i = 1; i < values.length; i++) {
			add(values[i]);
			size++;
		}
	}

	@Override
	public String toString() {
		return first.toString();
	}

	public void add(int i) {
		ListNode node = new ListNode(i, null);
		last.next = node;
		last = node;
	}

	public static MyNumber addition(MyNumber num1, MyNumber num2) {
		int num = num1.size > num2.size ? num1.size : num2.size;
		int[] arr = new int[num];
		ListNode node1 = num1.first;
		ListNode node2 = num2.first;
		for (int j = 0; j < num1.size; j++) {
			arr[j] = node1.value;
			node1 = node1.next;
		}
		for (int i = 0; i < num2.size; i++) {
			arr[i] += node2.value;
			node2 = node2.next;
		}
		return new MyNumber(arr);
	}

	class ListNode {
		private ListNode next;
		private int value;

		public ListNode(int value, ListNode next) {
			super();
			this.value = value;
			this.next = next;
		}

		@Override
		public String toString() {
			StringBuffer str = new StringBuffer();
			str.append("{" + value);
			ListNode node = this;
			while (node.next != null) {
				node = node.next;
				str.append(" ," + node.value);
			}
			str.append("}");
			return str.toString();
		}
	}
}
0醉醉哒0 2017-03-02
  • 打赏
  • 举报
回复
我猜你是从vb转过来的。。 ^运算符 不是次方,是异或
一点点小毛病 2017-03-02
  • 打赏
  • 举报
回复
人工置顶!!!!!
一点点小毛病 2017-03-02
  • 打赏
  • 举报
回复
求助各位,哪里有问题。测试用链表a{0,1,1}b为{0},应输出{0,1,1},但是我的程序输出{9,1}。
代码下载链接: https://pan.quark.cn/s/a8fbca3925b4 《鸿蒙OS开发环境构建》指南系统性地阐述了配置和筹备鸿蒙OS开发所需的各种工具和条件的具体方法。鸿蒙OS,亦称HarmonyOS,是由华为研发的一款面向全场景的分布式操作系统,其目标是提供跨平台、多设备间无缝协作的使用体验。本指南涉及了从Linux服务器到Windows工作站的完整开发流程。指南中提及了MobaXterm,这是一款用于连接Linux源码服务器的软件,使得开发人员能够在Windows环境中远程访问Linux服务器。同时,HiTool作为烧录工具,用于将编译后的系统镜像写入开发板。IPOP.EXE则是一款串口终端软件,用于执行串行通信和调试任务。Embedded Studio用于开发设备驱动程序,而DevEco Studio是华为提供的图形化应用程序开发平台,支持C/C++语言,拥有代码编辑、编译、烧录和调试功能,被视为OpenHarmony智能设备开发者的首选集成开发环境。在硬件配置方面,指南列出了必需的设备,包括Linux服务器(推荐Ubuntu 16.04及以上版本),Windows工作台(兼容XP/7/10),以及Hi3518EV300 IoT Camera单板。开发期间,Windows工作台通过USB线与单板相连接,以实现数据传输。此外,为了开展开发工作,还需要安装putty、IPOP、tftp服务器等辅助软件,以及HiTool用于烧录操作。在软件系统要求方面,Linux服务器需要安装bash、Python3.7+、gn、ninja、LLVM等构建工具,这些工具对于生成和执行编译脚本具有关键作用。在Windows工作台上,建议采用Visual Studi...

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧