강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hankim
hankim

câu hỏi đã được viết

Các vấn đề kiểm tra mã hóa cơ bản hàng đầu được giải quyết thực sự dễ dàng (với Java)

Mô tả ReverseLinkedList_Problem

return에 대해 질문드립니다.

Viết

·

231

1

안녕하세요.

항상 선생님 강의 잘 듣고 있습니다.

이번 문제에서 핵심인

---

next = current.next; // 2를 저장해두고

current.next = prev; // 1.next 는 null로 설정하고

prev = current; // prev는 1로 설정하고

current = next; // current값을 2로 재설정

--

이부분에 대해서는 어느정도 이해가 된 것 같은데, 정말 기본적인것이 갑자기 궁금해져서 문의를 남기게 되었습니다..

마지막 return 을 prev값을 해주고 있는데, 어떻게 3,2,1이라는 값이 도출되는지 궁금해졌어요.

.next란 방식으로 할당해주지도 않아서 , prev = current하면 마지막에 return은 '3'만 되지 않을까 걱정했는데 3,2,1이라는 값이 reverse되어서 나오더라구요...


제가 어느부분을 놓친 것인지 잘 감이 오질 않습니다ㅠㅠ

조언 부탁드립니다!

감사합니다 

java코테 준비 같이 해요!

Câu trả lời 3

2

pushupman님의 프로필 이미지
pushupman
Người chia sẻ kiến thức

이문제는 ListNode에서 next의 개념을 물어보는 가장 기본문제입니다.

이거 응용되서 여러 개념에서 물어봅니다.  가장 이해를 잘해야 될 문제이죠

이문제의 핵심은 

1N-2N-3NULL이

3N-2N-1NULL 이 되게하는 것입니다.

1)  Next= cur.next;

2) cur.next = Prev;

3) Prev= cur;

4) cur= Next

1,4번라인은 포인터만 한칸뒤로 가는 부분이고요

2,3번라인이 핵심입니다.

N이 Next, X가 널이라고 하면

1. 첫번째 수행시

 2N-3X = 2N-3X

1X=X

1X=1X

 2N-3X = 2N-3X

=================

2. 두번째 수행시

 3X = 3X

2N-1X=1X

2N-1X=2N-1X

 3X = 3X

=================

3. 두번째 수행시

 X = X

3N-2N-1X = 2N-1X

3N-2N-1X = 3N-2N-1X

 X = X

이렇게 수행됩니다. 이 그림을 계속 반복해서 보시면 이해가 되실겁니다. 

질문주신내용

=============================

마지막 return 을 prev값을 해주고 있는데, 어떻게 3,2,1이라는 값이 도출되는지 궁금해졌어요.

.next란 방식으로 할당해주지도 않아서 , prev = current하면 마지막에 return은 '3'만 되지 않을까 걱정했는데 3,2,1이라는 값이 reverse되어서 나오더라구요...

================================

cur.next = Prev;

=>cur.next에 이부분에 계속해서 Prev를 넣습니다.

Prev = cur;

=> 현재의 cur의 모든 정보를 Prev가 그대로 갖게됩니다.

 

 

1

pushupman님의 프로필 이미지
pushupman
Người chia sẻ kiến thức

ㅎㅎ 핵심 질문을 하셨네요 

이 문제는 정말 중요한 문제입니다 listNode next 개념인데요 이거 완전히 이해할수 있도록 동영상을 보충하거나 오늘밤에 글을쓰겠습니다 완전히 이해할때까지 제가 알려드릴게요

0

7d9fbah1mz님의 프로필 이미지
7d9fbah1mz
Người đặt câu hỏi

자세히 설명해주셔서 감사합니다.

LInkdedList문제에서는 노드끼리 연결되어있음이 핵심인듯 하네요. 감사해요

Hình ảnh hồ sơ của hankim
hankim

câu hỏi đã được viết

Đặt câu hỏi