美文网首页
2021-03-15极客时间打卡

2021-03-15极客时间打卡

作者: 程博颖 | 来源:发表于2021-03-15 11:55 被阅读0次

    1、两数相加:https://leetcode-cn.com/problems/add-two-numbers/
    给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
    请你将两个数相加,并以相同形式返回一个表示和的链表。
    你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    输入:l1 = [2,4,3], l2 = [5,6,4]
    输出:[7,0,8]
    解释:342 + 465 = 807.

    class Solution {
        public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
            ListNode pre = new ListNode(0);
            ListNode cur = pre;
            int carry = 0;
    
            while(l1 != null || l2 != null){
                int x = l1 == null?0 : l1.val;
                int y = l2 == null?0 : l2.val;
    
                int sum = x+y+carry;
                carry = sum / 10;
                sum %= 10;
    
                cur.next = new ListNode(sum);
                cur = cur.next;
    
                if(l1 != null){
                    l1 = l1.next;
                }
                if(l2 != null){
                    l2 = l2.next;
                }
            }
    
            if(carry == 1){
                cur.next = new ListNode(carry);
            }
            return pre.next;
        }
    }
    

    2、反转链表:[https://leetcode-cn.com/problems/reverse-linked-list/]
    反转一个单链表。
    输入: 1->2->3->4->5->NULL
    输出: 5->4->3->2->1->NULL

    class Solution {
        public ListNode reverseList(ListNode head) {
            ListNode pre = null;
            ListNode cur = head;
            ListNode temp = null;
            while (cur != null){
                temp = cur.next;
                cur.next = pre;
                pre = cur;
                cur = temp;
            }
            return pre;
        }
    }
    

    相关文章

      网友评论

          本文标题:2021-03-15极客时间打卡

          本文链接:https://www.haomeiwen.com/subject/lmckcltx.html