LeetCode(簡單)移除重複節點(c#)

題目爲 編寫代碼,移除未排序鏈表中的重複節點。保留最開始出現的節點。
在這裏插入圖片描述
思路爲根據鍵值對判斷是否重複,記錄上一個節點,如果重複,則將節點的下一節點設置爲空,直至不重複爲止。代碼如下

		public ListNode RemoveDuplicateNodes(ListNode head)
        {
            ListNode li2 = null;
            ListNode now = head;
            Dictionary<int, int> dic = new Dictionary<int, int>();
            while (now != null)
            {
                if (!dic.ContainsKey(now.val))
                {
                    dic.Add(now.val,1);
                    if (li2!=null)
                    {
                        li2.next = now;
                    }
                    li2 = now;
                    now = now.next;
                }
                else
                {
                    now = now.next;
                    li2.next = null;
                }
            }
            return head;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章