連結串列反轉問題

ZWL2333發表於2020-10-16

/**

  • Definition for singly-linked list.

  • public class ListNode {

  • int val;
    
  • ListNode next;
    
  • ListNode(int x) { val = x; }
    
  • }
    */
    class Solution {
    public ListNode reverseList(ListNode head) {
    int v=0;

     ListNode toil=null;
    
    
    
      while(head!=null){
    
         ListNode tmp=new ListNode();
          tmp.val=head.val;
          tmp.next=toil;
          toil=tmp;
    
          head=head.next;
    
      }
      return toil;
    

    }
    }

下面展示一些 內聯程式碼片

// A code block
var foo = 'bar';
// An highlighted block
class Solution {
    public ListNode reverseList(ListNode head) {
     int v=0;
        if(head!=null)
        { v=head.val;}
       
        ListNode toil=new ListNode(v);
      
      
   
         while(head.next!=null){

//             tmp=head.next;
//             tmp.next=toil;  //就是這一句
//
//             toil=tmp;
ListNode tmp=new ListNode();
             tmp.val=head.next.val;
             tmp.next=toil;
             toil=tmp;

             head=head.next;

         }
         return toil;
    }
}

在第十一行會報空指標異常, while(head.next!=null) 有可能此時head已經是空指標了,那麼就不會有head.next

  if(head!=null)
    { v=head.val;}
   else
   return head;
   加上這段則也能執行通過

相關文章