zoukankan      html  css  js  c++  java
  • golang 算法题 : 两数相加

    package main

    import "fmt"

    type ListNode struct {
    Val int
    Next *ListNode
    }

    func main() {
    l1 := &ListNode{
    Val: 1,
    Next: &ListNode{
    Val: 2,
    Next: &ListNode{
    Val: 3,
    },
    },
    }
    l2 := &ListNode{
    Val: 4,
    Next: &ListNode{
    Val: 5,
    Next: &ListNode{
    Val: 6,
    },
    },
    }
    l3 := addTwoNumbers(l1, l2)
    num := ""
    for l3 != nil {
    val := l3.Val
    num = fmt.Sprintf("%s%d", num, val)
    l3 = l3.Next
    }
    fmt.Println(num)
    }

    func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
    var head *ListNode
    var previous *ListNode
    var current *ListNode
    var carry int
    for l1 != nil || l2 != nil {
    v1 := 0
    v2 := 0
    if l1 != nil {
    v1 = l1.Val
    }
    if l2 != nil {
    v2 = l2.Val
    }
    result := v1 + v2 + carry
    nodeVal := result % 10
    carry = result / 10
    current = &ListNode{
    Val: nodeVal,
    }
    if head == nil {
    head = current
    }
    if previous != nil {
    previous.Next = current
    }

    previous = current

    if l1 != nil {
    l1 = l1.Next
    }
    if l2 != nil {
    l2 = l2.Next
    }

    }

    if carry > 0 {
    current = &ListNode{
    Val: carry,
    }
    if head == nil {
    head = current
    }
    if previous != nil {
    previous.Next = current
    }
    }

    return head
    }
  • 相关阅读:
    初始样式
    http://necolas.github.io/normalize.css/
    css3 旋转密码特效
    OpenGL_构建GLFW与第一个程序
    [翻译][HTML]CELLPADDING and CELLSPACING
    Internal Server Error
    字体收集
    Create a site by Google Site
    [转载]HTML5游戏前端开发秘籍
    程序结构(1)
  • 原文地址:https://www.cnblogs.com/w3liu/p/10850325.html
Copyright © 2011-2022 走看看