Remove Duplicates from Sorted List

์ด ๋ฌธ์ œ๋Š” ์ •๋ ฌ๋œ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์—์„œ ์ค‘๋ณต๋œ ๊ฐ’์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฌธ์ œ ๋กœ, ํ•œ ๋ฒˆ์˜ ์ˆœํšŒ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ.


ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•(ํˆฌ ํฌ์ธํ„ฐ)

  1. ํ˜„์žฌ ๋…ธ๋“œ(curr) ์™€ ๋‹ค์Œ ๋…ธ๋“œ(curr.next) ๋ฅผ ๋น„๊ต

    1. ๋งŒ์•ฝ curr.val == curr.next.val ์ด๋ฉด, curr.next ๋ฅผ ๊ฑด๋„ˆ๋›ฐ์–ด ์ค‘๋ณต์„ ์ œ๊ฑฐ

    2. ์ค‘๋ณต์ด ์•„๋‹ˆ๋ผ๋ฉด curr ์„ ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์ด๋™

  2. ์ˆœ์ž์ฒ™์œผ๋กœ ๋ฆฌ์ŠคํŠธ ๋๊นŒ์ง€ ๋ฐ˜๋ณต ํ•˜๋ฉด์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐ

โŒ›์‹œ๊ฐ„ ๋ณต์žก๋„ : O(N)

๐Ÿ“Œ๊ณต๊ฐ„ ๋ณต์žก๋„ : O(1) (์ถ”๊ฐ€ ๊ณต๊ฐ„ ์—†์ด ์›๋ณธ ๋ฆฌ์ŠคํŠธ ์ˆ˜์ •)


โœ… Java ์ฝ”๋“œ

๐Ÿ“Œ์ฝ”๋“œ ์„ค๋ช…

  1. deleteDuplicates(ListNode head)

    1. ํ˜„์žฌ ๋…ธ๋“œ(curr ) ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉด์„œ ์ค‘๋ณต์ด ์žˆ๋Š” ๊ฒฝ์šฐ, curr.next ๋ฅผ ๊ฑด๋„ˆ๋›ฐ์–ด ์‚ญ์ œ.

    2. ๋ฆฌ์ŠคํŠธ ๋๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐ

  2. createLinkedList(int[] values)

    1. ๋ฐฐ์—ด์„ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ

  3. printLinkedList(ListNode head)

    1. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฉ”์„œ๋“œ

Last updated