演算法很簡單,兩個變數,左邊的一直加,右邊的一直減,兩者相同後停止掃瞄.
/*
* 1.cpp
* * created on: 2015-11-11
* author: sunyuan
* reserve array
*///
#includeusing namespace std;
void reverve(int,int);
void output(int,int);
int main();
reverve(array,7);
output(array,7);
return 0;
}void reverve(int array,int length);
//reverse linklist
node* reverselinklist(node* head)
node* next=head->next;
node* new_node=reverselinklist(next);
next->next=head;
head->next=null;
return new_node;
}//output list
void output(node* head)
}int main()
output(first);
output(reverselinklist(first));
return 0;
}
陣列和鍊錶都是資料結構的基本,核心,所以知識點一定要牢固。
鍊錶的倒置
public static void reorder ref node listhead node lefthead listhead node righthead null node current lefthead.next lefthead.next null while current nu...
單鏈表 鍊錶倒置
鍊錶屬於動態資料結構,可以模擬成一 環 接一 環 的鏈條,這裡每一 環 視作乙個結點,結點串在一起形成鍊錶。這種資料結構非常靈活,結點數目無須事先指定,可以臨時生成。每個結點有自己的儲存空間,結點間的儲存空間也無需連線,結點之間的串連由指標來完成,指標的操作又極為靈活方便,無須移動大批資料,只需修改...
單向鍊錶的倒置
首先要判斷當鍊表的長度為0或者1的時候,直接返回當前節點即可,否則需要兩個輔助 指標 pre next,分別指向頭結點的前結點和後結點,不然next屬性改變的時候就會丟失原先列表的結點位址。首先讓pre null,next null 迴圈當head null 的時候,讓next head.next,...