LeetCode篇之链表:1290(二进制链表转整数)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode篇之链表:1290(二进制链表转整数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
LeetCode篇之鏈表:1290-->二進制鏈表轉整數
- 1290. 二進制鏈表轉整數
- 題目:
- 解題思路:
- 源碼:
- 改進:
- 踩坑點:
1290. 二進制鏈表轉整數
題目:
解題思路:
1.先遍歷一遍鏈表,求出鏈表長度
2.進行二進制和十進制的轉化
3.算法優化:當遇到節點的值為0時直接跳過
源碼:
int getDecimalValue(struct ListNode* head){struct ListNode *p = head;int len = 0;int result = 0;int An = 0;while(p != NULL){p = p->next;len ++;}p = head;while(p != NULL){An = p->val * pow(2,len-1);result = result + An;p = p->next;len --;}return result; }改進:
//當遇到節點的值為0時直接跳過 int getDecimalValue(struct ListNode* head){struct ListNode *p = head;int len = 0;int result = 0;int An = 0;while(p != NULL){p = p->next;len ++;}p = head;while(p != NULL){if(p->val == 0){p = p->next;len --;}else{An = p->val * pow(2,len-1);result = result + An;p = p->next;len --;}}return result; }踩坑點:
很簡單,沒想到有什么坑。但是這個算法很容易優化,見改進
總結
以上是生活随笔為你收集整理的LeetCode篇之链表:1290(二进制链表转整数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: weblogic配置domain和删除d
- 下一篇: 数据结构之外部排序:归并排序法