📜  链表中大于下一个节点的节点总和(1)

📅  最后修改于: 2023-12-03 15:12:32.411000             🧑  作者: Mango

链表中大于下一个节点的节点总和

介绍

给定一个单向链表,计算其中大于下一个节点值的节点之和。

例子:

输入: 1->2->3->4->5 输出: 0

输入: 5->4->3->2->1 输出: 10

思路

遍历链表,对于每个节点,如果当前节点的值大于下一个节点的值,则累加当前节点的值,最终得到的和即为所求。

代码示例
class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    def sumOfNodesGreaterThanNext(self, head: ListNode) -> int:
        if not head or not head.next:
            return 0
        sum = 0
        curr = head
        while curr and curr.next:
            if curr.val > curr.next.val:
                sum += curr.val
            curr = curr.next
        return sum
性能分析
  • 时间复杂度:$O(n)$,其中 n 为链表长度,需要遍历一次链表。
  • 空间复杂度:$O(1)$,只需要常数级别的额外空间。