Two Sum 和 Add Two Numbers

Two Sum 和 Add Two Numbers,第1张

Two Sum 和 Add Two Numbers Two Sum 和 Add Two Numbers 12月16日 Two Sum

最简单的方法就是遍历,难度o(n^2)

另外可以用HashMap,把i和nums[i]存进map里。复杂度O(n)。

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] res= new int[2];
        if(nums==null||nums.length==0){
            return null;
        }
        Map map = new HashMap<>();
        for(int i=0;i 
Add Two Numbers 
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        if(l1==null){
            return l2;
        }
        if(l2==null){
            return l1;
        }
        ListNode head = new ListNode(0);
        ListNode node=new ListNode(0);
        int add=0;
        node=head;
        while(l1!=null||l2!=null){
            if(l1!=null&&l2!=null){
                ListNode node2=new ListNode((l1.val+l2.val+add)%10);
                add=(l1.val+l2.val+add)/10;
                node.next=node2;
                node=node2;
                l1=l1.next;
                l2=l2.next;
            }
            else if(l1!=null){
                ListNode node2=new ListNode((l1.val+add)%10);
                node.next=node2;
                node=node2;
                add=(l1.val+add)/10;
                l1=l1.next;
            }
            else if(l2!=null){
                ListNode node3=new ListNode((l2.val+add)%10);
                node.next=node3;
                node=node3;
                add=(l2.val+add)/10;
                l2=l2.next;
            }
        }
        if(add!=0){
            ListNode node2=new ListNode(add);
            node.next=node2;
        }
        return head.next;
    }
}

我出错的地方是

ListNode node2=new ListNode((l1.val+l2.val+add)%10);
node.next=node2;
node=node2;

不能直接对node.next赋值。因为node.next是null,没有分配空间。会出现java.lang.NullPointerException

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5666087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存