昨晚在參加蘭亭集勢的筆試時,看到了這樣乙個題目。大致意思就是給出乙個單鏈表,鍊錶中有重複的元素,需要刪除重複的元素。如:1→2→3→5→4→3→7,刪除重複元素後變成1→2→3→5→4→7。
思路其實還蠻簡單:
建立三個工作指標p,q,r,然後p
遍歷
全表。p每到乙個結點,q就從這個結點往後遍歷,並與p的數值比較,相同的話就free掉那個結點。
linklist removedupnode(linklist l) //刪除重複結點的演算法else
q = q->next;
} p = p->next;
} return l;
}
鍊錶刪除重複元素1,刪除重複元素2,
刪除排序鍊錶中的重複元素 給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。示例 1 輸入 1 1 2 輸出 1 2 示例 2 輸入 1 1 2 3 3 輸出 1 2 3 思路 很簡單。先將兩個指標進行操作,start,end然後判斷end是否等於空即可 definition for s...
31 刪除鍊錶中重複元素
解析 1.保留重複的結點 例 1 1 2 比較當前結點的值與下一結點的值,如果相同,則當前結點指向下一結點的下一結點 如果當前結點的值與下一結點的值不同,則當前結點移動到下一結點。根據上述思路,由於當前結點的值1和下一結點的值1相同,則當前結點指向下一結點的下一節點,即1 2。public list...
刪除排序鍊錶中重複元素
示例 1 輸入 1 2 3 3 4 4 5 輸出 1 2 5 示例 2 輸入 1 1 1 2 3 輸出 2 3 照例使用三個指標來 struct listnode deleteduplicates struct listnode head else 沒有重複的就正常移動 示例 1 輸入 1 1 2 ...