LeetCode 1634. 求两个多项式链表的和
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1634. 求两个多项式链表的和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
多項式鏈表是一種特殊形式的鏈表,每個節點表示多項式的一項。
每個節點有三個屬性:
- coefficient:該項的系數。項 9x4 的系數是 9 。
- power:該項的指數。項 9x4 的指數是 4 。
- next:指向下一個節點的指針(引用),如果當前節點為鏈表的最后一個節點則為 null 。
例如,多項式 5x3 + 4x - 7 可以表示成如下圖所示的多項式鏈表:
多項式鏈表必須是標準形式的,即多項式必須 嚴格 按指數 power 的遞減順序排列(即降冪排列)。
另外,系數 coefficient 為 0 的項需要省略。
給定兩個多項式鏈表的頭節點 poly1 和 poly2,返回它們的和的頭節點。
PolyNode 格式:
輸入/輸出格式表示為 n 個節點的列表,其中每個節點表示為 [coefficient, power] 。例如,多項式 5x3 + 4x - 7 表示為: [[5,3],[4,1],[-7,0]] 。
示例 1:
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/add-two-polynomials-represented-as-linked-lists
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
/*** Definition for polynomial singly-linked list.* struct PolyNode {* int coefficient, power;* PolyNode *next;* PolyNode(): coefficient(0), power(0), next(nullptr) {};* PolyNode(int x, int y): coefficient(x), power(y), next(nullptr) {};* PolyNode(int x, int y, PolyNode* next): coefficient(x), power(y), next(next) {};* };*/class Solution { public:PolyNode* addPoly(PolyNode* poly1, PolyNode* poly2) {PolyNode* temp = new PolyNode(), *cur=temp;while(poly1 && poly2){if(poly1->power > poly2->power){cur->next = poly1;cur = cur->next;poly1 = poly1->next;}else if(poly1->power < poly2->power){ cur->next = poly2;cur = cur->next;poly2 = poly2->next;}else{int sum = poly1->coefficient + poly2->coefficient;if(sum){poly1->coefficient += poly2->coefficient;cur->next = poly1;cur = cur->next;}poly1 = poly1->next;poly2 = poly2->next;}}if(poly1)cur->next = poly1;elsecur->next = poly2;return temp->next;} };88 ms 37.8 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1634. 求两个多项式链表的和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 常用类库
- 下一篇: Chapter6_Vocoder