Today I Learned

최지웅·2024년 3월 22일
0

Today I Learned

목록 보기
123/238
post-thumbnail

오늘 할일
1. LeetCode
2. 카드발급
3. devops공부 계획 수립

오늘 한일
1. LeetCode

    1. Odd Even Linked List의 이전 코드에서 iter2=iter2.next로 옮기는 부분에서 오타가 있었다. 해당 부분을 수정한 후 테스트케이스 43/70까지 통과하였다.
/**
 * 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 oddEvenList(ListNode head) {
        /*
            시간복잡도 O(n), 공간복잡도 O(1)로 홀수번째 node를 뒤로 link
         */
        //1. 예외처리(head가 비어있거나 하나일 경우)
        if(head==null){
            return null;
        } else if(head.next==null){
            return head;
        }

        //2. 전체 size 계산
        int size=1;
        for(ListNode i=head; i.next!=null; i=i.next){
            size++;
        }

        ListNode head2=null, iter2=null, iter=head, prev=head;
        for(int i=0; i<size; i++){
            if(i==5)
                System.out.println();
            if(i==0){
                iter=iter.next;
            } else if(i==1){
                head2=new ListNode(iter.val);
                iter2=head2;
                iter=iter.next;
                prev.next=iter;
            } else if(i==size-1){//merge
                iter.next=head2;
            } else if(i%2==0){
                prev=iter;
                iter=iter.next;
            } else if(i%2==1){
                iter2.next=new ListNode(iter.val);
                iter2=iter2.next;
                iter=iter.next;
                prev.next=iter;
            }//공통코드는 없다.
        }//endfor

        return head;
    }
}

profile
이제 3학년..

0개의 댓글