题目:两数相加java
描述:描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,而且它们的每一个节点只能存储 一位 数字。若是咱们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您能够假设除了数字 0 以外,这两个数都不会以 0 开头。git
示例:github
这个题目相对基础不少,就是两个单链表的处理,咱们只要注意进位便可。不过咱们要处理好几种特殊状况:ide
只要注意处理好以上问题,其它都是常规操做,一块儿看下参考代码吧:学习
public ListNode addTwoNumbers(ListNode l1, ListNode l2) { // 用来标记返回结果的头结点,增长一个无效结点可使代码简单 ListNode result = new ListNode(-1); // 记录当前位置的值 int cur = 0; // 进位标志 int identify = 0; // 用另外一个结点来构建链表,这样就不会丢失头结点指针了 ListNode resultHandle = result; // 避免长度不一致 while (l1!=null || l2!=null){ int a = l1!=null?l1.val:0; int b = l2!=null?l2.val:0; // 计算当前值 cur = a + b + identify; // 更新进位标志 identify = cur/10; // 更新当前值 cur %= 10; // 当前值存入链表 resultHandle.next = new ListNode(cur); if(l1!=null){ l1 = l1.next; } if(l2!=null){ l2 = l2.next; } resultHandle = resultHandle.next; } // 注意进位 if(identify!=0){ resultHandle.next = new ListNode(identify); } // 去除无效头结点 return result.next; }
好了,本次题目就是这么简单,主要在于细致,处理好各类边界问题就好。之后我会对题目进行适当的筛选,尽可能分享一些可以给咱们启发的题目。不过所有的题目都会上传到个人github。指针
题目:无重复字符的最长子串code
描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。blog
示例:图片
相关源码请加QQ获取。资源
【感谢您能看完,若是可以帮到您,麻烦点个赞~】
更多经验技术欢迎前来共同窗习交流: 一点课堂-为梦想而奋斗的在线学习平台 http://www.yidiankt.com/
![关注公众号,回复“1”免费领取-【java核心知识点】]
QQ讨论群:616683098
QQ:3184402434
想要深刻学习的同窗们能够加我QQ一块儿学习讨论~还有全套资源分享,经验探讨,等你哦!