[leetCode刷题笔记]2017.01.28

2. Add Two Numbers

这其实比昨天那道相加的问题还简单一点。。。原理一样。

public class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode output= new ListNode(0);
        ListNode curr = output;
        ListNode curr2 = l2;
        ListNode curr1 = l1;
        
        while (curr1 != null || curr2 != null) {
                if (curr1 != null && curr2 != null) {
                    curr.next = new ListNode(curr1.val + curr2.val);
                    curr2 = curr2.next;
                    curr1 = curr1.next;
                }
                else if (curr1 != null && curr2 == null){
                    curr.next = new ListNode(curr1.val);
                    curr1 = curr1.next;
                }
                else {
                    curr.next = new ListNode(curr2.val);
                    curr2 = curr2.next;
                }
                curr = curr.next;
            }
        
        
        ListNode currN = output.next;
        while (currN != null) {
            if (currN.next == null && currN.val > 9) {
                currN.val = currN.val - 10;
                currN.next = new ListNode(1);
            }
            else {
                if (currN.val > 9) {
                    currN.next.val++;
                    currN.val = currN.val - 10;
                }
            }
            currN = currN.next;
        }
        return output.next;
    }


}


328. Odd Even Linked List

这题就是吧建立两个链表再顺链表两个两个移动,将奇数偶数分别加到这两个链表后面。

public class Solution {
    public ListNode oddEvenList(ListNode head) {
        // check if it is null
        if (head == null) {
            return null;
        }
        ListNode oddNode = head;
        ListNode evenNode = head.next;
        // referance for moving on
        ListNode currO = oddNode;
        ListNode currE = evenNode;
        
        while (currO.next != null && currE.next != null) {
            currO.next = currO.next.next;
            currE.next = currE.next.next;
            currO = currO.next;
            currE = currE.next;
        }
        // connect two chain
        
        currO.next = evenNode;
        return oddNode;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值