Leetcode206_체인 테이블 반전

1329 단어
제목 주소
단일 체인 테이블을 반전시키고 교체와 귀속 방법을 사용합니다
  • 낡은 체인 헤드 삭제법, 새로운 체인 헤드 삽입법
  • 헤드 노드의 선구자와 후계 유지
  • 귀속,head의 체인 테이블에 대해 먼저 귀속 처리head.next의 체인 테이블은 처음에는 꼬리 노드로 돌아가서 헤드를 가리키는 줄 알았지만, 사실 꼬리 노드는 줄곧 헤드였다.next, 그래서 직접 헤드.next.next는head를 가리키면 됩니다
  • code1
    class Solution {
        public ListNode reverseList(ListNode head) {
            ListNode newHead=null;
            while(head!=null){
                // 
                ListNode tmp=head;
                head=head.next;
                // 
                tmp.next=newHead;
                newHead=tmp;
            }
            return newHead;
        }
    }

    code2
    class Solution {
        public ListNode reverseList(ListNode head) {
            if(head==null){
                return null;
            }
            ListNode pre=null;
            ListNode nex=head.next;
            while(head!=null){
                head.next=pre;
                pre=head;
                head=nex;
                if(nex!=null){
                    nex=nex.next;
                }
            }
            return pre;
        }
    }

    code3
    class Solution {
        public ListNode reverseList(ListNode head) {
            if(head==null || head.next==null){
                return head;
            }
            ListNode tmp=reverseList(head.next);
            head.next.next=head;
            head.next=null;
            return tmp;
        }
    }

    좋은 웹페이지 즐겨찾기