Hyplus目录
Java
public class ListNode {
int val;
ListNode next;
ListNode() {
}
ListNode(int val) {
this.val = val;
}
ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
/**
* <a href="https://leetcode-cn.com/problems/add-two-numbers/">Add Two Numbers</a>
*/
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode l3 = new ListNode();
ListNode p = l1;
ListNode q = l2;
ListNode r = l3;
int carry = 0;
while (p != null || q != null || carry > 0) {
int sum = carry;
if (p != null) {
sum += p.val;
}
if (q != null) {
sum += q.val;
}
carry = sum / 10;
r.next = new ListNode(sum % 10);
r = r.next;
if (p != null) {
p = p.next;
}
if (q != null) {
q = q.next;
}
}
return l3.next;
}
}
C++
#ifndef LEETCODE_SOLUTIONS_LISTNODE_H
#define LEETCODE_SOLUTIONS_LISTNODE_H
struct ListNode {
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListNode *next) : val(x), next(next) {}
};
#endif //LEETCODE_SOLUTIONS_LISTNODE_H
#include <iostream>
#include "ListNode.h"
using namespace std;
class Solution {
public:
ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {
ListNode *res = new ListNode;
int carry = 0;
ListNode *p1 = l1, *p2 = l2, *r = nullptr;
while (p1 || p2) {
if (p1) {
carry += p1->val;
p1 = p1->next;
}
if (p2) {
carry += p2->val;
p2 = p2->next;
}
ListNode *s = new ListNode;
s->next = nullptr;
s->val = carry % 10;
carry /= 10;
if (!r) {
res = s;
} else {
r->next = s;
}
r = s;
}
if (carry) {
ListNode *s = new ListNode;
s->next = nullptr;
s->val = carry;
r->next = s;
}
return res;
}
};
JavaScript
export class ListNode {
val;
next;
constructor(val, next) {
this.val = (val === undefined ? 0 : val)
this.next = (next === undefined ? null : next)
}
}
import {ListNode} from "./ListNode.js";
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var addTwoNumbers = function (l1, l2) {
let l3 = new ListNode();
let p = l1, q = l2, r = l3;
let carry = 0;
while (p != null || q != null || carry > 0) {
let sum = carry;
if (p != null) {
sum += p.val;
}
if (q != null) {
sum += q.val;
}
carry = Math.floor(sum / 10);
r.next = new ListNode(sum % 10);
r = r.next;
if (p != null) {
p = p.next;
}
if (q != null) {
q = q.next;
}
}
return l3.next;
};
PHP
class ListNode {
public $val = 0;
public $next = null;
function __construct($val = 0, $next = null) {
$this->val = $val;
$this->next = $next;
}
}
include "ListNode.php";
class Solution {
/**
* @param ListNode $l1
* @param ListNode $l2
* @return ListNode
*/
function addTwoNumbers(ListNode $l1, ListNode $l2): ListNode {
$l3 = new ListNode();
$p = $l1;
$q = $l2;
$r = $l3;
$carry = 0;
while ($p != null || $q != null || $carry > 0) {
$sum = $carry;
if ($p != null) {
$sum += $p->val;
}
if ($q != null) {
$sum += $q->val;
}
$carry = floor($sum / 10);
$r->next = new ListNode($sum % 10);
$r = $r->next;
if ($p != null) {
$p = $p->next;
}
if ($q != null) {
$q = $q->next;
}
}
return $l3->next;
}
}