博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Add Two Numbers
阅读量:4075 次
发布时间:2019-05-25

本文共 2198 字,大约阅读时间需要 7 分钟。

Add Two Numbers

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8

Java代码:

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {        ListNode head = new ListNode(0);		ListNode tmp = head;		boolean flag = false;		while (l1 != null && l2 != null) {			if (true == flag) {				if ((l1.val + l2.val) < 9) {					tmp.val = l1.val + l2.val + 1;					flag = false;				} else {					tmp.val = l1.val + l2.val + 1 - 10;					flag = true;				}			} else {				if ((l1.val + l2.val) < 10) {					tmp.val = l1.val + l2.val;					flag = false;				} else {					tmp.val = l1.val + l2.val - 10;					flag = true;				}			}			if(null !=l2.next && null !=l1.next){				tmp.next = new ListNode(0);				tmp = tmp.next;			}			l1 = l1.next;			l2 = l2.next;		}		if (l1 == null && l2 == null) {			if (true == flag) {				tmp.next = new ListNode(1);			}		} else if (l1 == null) {			tmp.next = new ListNode(0);			tmp =tmp.next;			while (l2 != null) {				if (true == flag) {					if (9 == l2.val) {						tmp.val = 0;						flag = true;					} else {						tmp.val = l2.val + 1;						flag = false;					}				} else {					tmp.val = l2.val;				}				if(null != l2.next)					tmp.next = new ListNode(0);				else{					if(true == flag){						tmp.next = new ListNode(1);						flag = false;					}				}				tmp = tmp.next;				l2 = l2.next;			}		} else {			tmp.next = new ListNode(0);			tmp = tmp.next;			while (l1 != null) {				if (true == flag) {					if (9 == l1.val) {						tmp.val = 0;						flag = true;					} else {						tmp.val = l1.val + 1;						flag = false;					}				} else {					tmp.val = l1.val;				}				if(null !=l1.next)					tmp.next = new ListNode(0);				else{					if(true == flag){						tmp.next = new ListNode(1);						flag = false;					}				}				tmp = tmp.next;								l1 = l1.next;			}		}		return head;    }}

转载地址:http://ynuni.baihongyu.com/

你可能感兴趣的文章
IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结
查看>>
【IntelliJ IDEA】idea导入项目只显示项目中的文件,不显示项目结构
查看>>
ssh 如何方便的切换到其他节点??
查看>>
JSP中文乱码总结
查看>>
Java-IO-File类
查看>>
Java-IO-java的IO流
查看>>
Java-IO-输入/输出流体系
查看>>
Java实现DES加密解密
查看>>
HTML基础
查看>>
Java IO
查看>>
Java NIO
查看>>
Java大数据:Hbase分布式存储入门
查看>>
大数据学习:Spark RDD操作入门
查看>>
大数据框架:Spark 生态实时流计算
查看>>
大数据入门:Hive和Hbase区别对比
查看>>
大数据入门:ZooKeeper工作原理
查看>>
大数据入门:Zookeeper结构体系
查看>>
大数据入门:Spark RDD基础概念
查看>>
大数据入门:SparkCore开发调优原则
查看>>
大数据入门:Java和Scala编程对比
查看>>