链表
指针指向的是一个引用
在写链表时需要特别注意要记住链表的火车头,当你新创建一个指针,将其链接到火车头的下一列车厢,其仍然是连接着的,这时候你就可以对此指针,进行继续链接,最终会获得一列长火车。
例如力扣第2题:
js
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var addTwoNumbers = function (l1, l2) {
let head = new ListNode(0);//虚拟头节点
let node = head;
let carry = 0;
while (l1 || l2) {
let l1Val = l1 ? l1.val : 0;
let l2Val = l2 ? l2.val : 0;
let sum = l1Val + l2Val + carry;
carry = Math.floor(sum / 10);//用于判断是否要进位
node.next = new ListNode(sum % 10);//把next指向sum的个位数
node = node.next;//遍历
if (l1) l1 = l1.next;
if (l2) l2 = l2.next;
}
// 防止最后一位时仍然还有进位
if (carry) {
node.next = new ListNode(carry);
}
return head.next;
};