当前位置: 首页 > news >正文

好看的网站首页天工网官方网站

好看的网站首页,天工网官方网站,创建平台网站下载,建设一个网站需要什么人员题目 给定两个表示非负整数的单向链表,请问如何实现这两个整数的相加并且把它们的和仍然用单向链表表示?链表中的每个节点表示整数十进制的一位,并且头节点对应整数的最高位数而尾节点对应整数的个位数。例如,两个分别表示整数98…

题目

给定两个表示非负整数的单向链表,请问如何实现这两个整数的相加并且把它们的和仍然用单向链表表示?链表中的每个节点表示整数十进制的一位,并且头节点对应整数的最高位数而尾节点对应整数的个位数。例如,两个分别表示整数984和18的链表,它们相加时应该是984中的十位数8和18中的十位数1相加,984的个位数4和18的个位数8相加。此时不能从两个链表的头节点开始相加,而是应该把它们的尾节点对齐并把对应的数位相加。

分析

解决这个问题的办法是把表示整数的链表反转。反转之后的链表的头节点表示个位数,尾节点表示最高位数。此时从两个链表的头节点开始相加,就相当于从整数的个位数开始相加。在做加法时还需要注意的是进位。如果两个整数的个位数相加的和超过10,就会往十位数产生一个进位。在下一步做十位数相加时就要把这个进位考虑进去。
在这里插入图片描述

public class Test {public static void main(String[] args) {ListNode listNode1 = new ListNode(1);ListNode listNode2 = new ListNode(2);ListNode listNode3 = new ListNode(3);ListNode listNode4 = new ListNode(4);ListNode listNode5 = new ListNode(5);ListNode listNode6 = new ListNode(6);ListNode listNode7 = new ListNode(7);ListNode listNode8 = new ListNode(8);ListNode listNode9 = new ListNode(9);listNode9.next = listNode8;listNode8.next = listNode4;ListNode result = reverseList(listNode1);while (result != null) {System.out.println(result.val);result = result.next;}}public static ListNode addTwoNumbers(ListNode head1, ListNode head2) {head1 = reverseList(head1);head2 = reverseList(head2);ListNode reversedHead = addReversed(head1, head2);return reverseList(reversedHead);}private static ListNode addReversed(ListNode head1, ListNode head2) {ListNode dummy = new ListNode(0);ListNode sumNode = dummy;int carry = 0;while (head1 != null || head2 != null) {int sum = (head1 == null ? 0 : head1.val) + (head2 == null ? 0 : head2.val) + carry;carry = sum >= 10 ? 1 : 0;sum = sum >= 10 ? sum - 10 : sum;ListNode newNode = new ListNode(sum);sumNode.next = newNode;sumNode = sumNode.next;head1 = head1 == null ? null : head1.next;head2 = head2 == null ? null : head2.next;}if (carry > 0) {sumNode.next = new ListNode(carry);}return dummy.next;}public static ListNode reverseList(ListNode head) {ListNode prev = null;ListNode cur = head;while (cur != null) {ListNode next = cur.next;cur.next = prev;prev = cur;cur = next;}return prev;}
}
http://www.yayakq.cn/news/992242/

相关文章:

  • 南阳网站排名优化公司北京网络开发公司
  • 怎样用手机搭建网站长春网长春关键词排名站设计
  • 营销网站建设制作怎样建立公司的网站
  • 南城区仿做网站seo如何快速出排名
  • 数字化校园建设网站阿里云预安装wordpress
  • 网站建设格局百度文档怎么免费下vvv
  • 做一个网站成本多少钱优秀的ui设计案例分析
  • 网站建设企业名录wordpress实现付费浏览
  • 厦门做网站培训广州网站制作怎么做
  • 淘宝优惠券网站建设教程阿里免费做网站
  • 上市设计网站网上接装修工程哪家平台好
  • 网站建设方式有哪些点金wordpress主题网
  • js 网站跳转网站建设网页模板
  • jsp简单的网站开发例子搜索推广专员
  • 网站开发人员的 生活电脑ppt制作软件
  • app网站建站系统下载网站开发成本预算
  • 网站建设费计入 科目做华为网站的还有哪些功能
  • 网站你啦怎样做旺仔饼干wordpress 用户等级
  • 东莞建设小学网站怎么给公司做简单网站
  • 导航网站怎么做的哈尔滨工程信息网
  • wordpress多个网站软文网站推广
  • 债权债务交易网站开发企业网站建设维护
  • 假链接制作网站网站运营者网址
  • 可以做百度百科参考资料的网站网站备案现场核验
  • 网站开发 入门教程国家信用企业信息系统
  • 网站链接做投票义乌微硕网络科技有限公司
  • 百度公司网站推广怎么做信盈达嵌入式培训
  • 青岛建设公司网站同步显示一个wordpress
  • 网站开发项目流程书南宁专业网站制作
  • 网站空间可以自己做吗在百度怎么建立自己的网站吗