💻 Coding Problems Solving/Stack | Queue
[LeetCode] Add Two Numbers
Kim_dev
2023. 7. 14. 20:48
1. 문제 : https://leetcode.com/problems/reverse-linked-list/description/
2. 풀이
Stack에 하나씩 넣어서 역으로 꺼내오면서 next값 역으로 넣어주기
3. 코드
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
Stack<ListNode> stk = new Stack<>();
ListNode now = head;
ListNode answer;
while(now != null){
stk.add(now);
if(now.next == null) break;
now = now.next;
}
answer = now;
while(!stk.isEmpty()){
now = stk.pop();
if(stk.isEmpty()){
now.next = null;
break;
}
now.next = stk.peek();
}
return answer;
}
}