最近在微博上看到很多學(xué)校舉辦感恩演講引發(fā)爭議的消息,原來這么多年了過去了,很多學(xué)校還依然在樂此不疲地舉辦這樣的活動虚倒,這讓我想到了我自己的親身經(jīng)歷。 我是高二的時候接觸到的這樣...

最近在微博上看到很多學(xué)校舉辦感恩演講引發(fā)爭議的消息,原來這么多年了過去了,很多學(xué)校還依然在樂此不疲地舉辦這樣的活動虚倒,這讓我想到了我自己的親身經(jīng)歷。 我是高二的時候接觸到的這樣...
自己一個人折騰東西就是要不斷爬帖子,在網(wǎng)上參考了各位前輩的攻略后似枕,用了半天加一個晚上終于成功了盖淡。網(wǎng)上Ubuntu CUDA的帖子很多,但是很少有Windows的凿歼,但是我...
輸出二叉樹轉(zhuǎn)換為鏈表的while條件去掉node.left != null 好像才對
面試算法知識梳理(13) - 二叉樹算法第三部分面試算法代碼知識梳理系列 面試算法知識梳理(1) - 排序算法 插入排序 希爾排序 選擇排序 冒泡排序 計數(shù)排序 基數(shù)排序 歸并排序 快速排序 雙向掃描的快速排序 堆排序 面...
打印和為s的路徑不應(yīng)該使用隊列,而是采用棧才對
面試算法知識梳理(12) - 二叉樹算法第二部分面試算法代碼知識梳理系列 面試算法知識梳理(1) - 排序算法 插入排序 希爾排序 選擇排序 冒泡排序 計數(shù)排序 基數(shù)排序 歸并排序 快速排序 雙向掃描的快速排序 堆排序 面...
重建二叉樹的算法存在問題工坊,打印不出相同的結(jié)果
public static Node createTreeAgain(int[] preOrder, int preStart, int preEnd, int[] inOrder, int inStart, int inEnd){
Node node = new Node();
int data = preOrder[preStart];
node.data = data;
node.lchild = null;
node.rchild = null;
if(preStart == preEnd){
if(inStart == inEnd && preOrder[preStart] == inOrder[inStart]){
return node;
}else{
return null;
}
}
int rootIndex = inStart;
while(rootIndex <= inEnd && inOrder[rootIndex] != data){
rootIndex++;
}
if(rootIndex == inEnd && inOrder[rootIndex] != data){
return null;
}
int leftPreOrderEnd = preStart + (rootIndex - inStart);
if(rootIndex != inStart){
node.lchild = createTreeAgain(preOrder, preStart+1, leftPreOrderEnd, inOrder, inStart, rootIndex-1);
}
if(rootIndex != inEnd){
node.rchild = createTreeAgain(preOrder, leftPreOrderEnd+1, preEnd, inOrder, rootIndex+1, inEnd);
}
return node;
}
重建二叉樹的算法存在問題,打印不出相同的結(jié)果
public static Node createTreeAgain(int[] preOrder, int preStart, int preEnd, int[] inOrder, int inStart, int inEnd){
Node node = new Node();
int data = preOrder[preStart];
node.data = data;
node.lchild = null;
node.rchild = null;
if(preStart == preEnd){
if(inStart == inEnd && preOrder[preStart] == inOrder[inStart]){
return node;
}else{
return null;
}
}
int rootIndex = inStart;
while(rootIndex <= inEnd && inOrder[rootIndex] != data){
rootIndex++;
}
if(rootIndex == inEnd && inOrder[rootIndex] != data){
return null;
}
int leftPreOrderEnd = preStart + (rootIndex - inStart);
if(rootIndex != inStart){
node.lchild = createTreeAgain(preOrder, preStart+1, leftPreOrderEnd, inOrder, inStart, rootIndex-1);
}
if(rootIndex != inEnd){
node.rchild = createTreeAgain(preOrder, leftPreOrderEnd+1, preEnd, inOrder, rootIndex+1, inEnd);
}
return node;
}
面試算法知識梳理(13) - 二叉樹算法第三部分面試算法代碼知識梳理系列 面試算法知識梳理(1) - 排序算法 插入排序 希爾排序 選擇排序 冒泡排序 計數(shù)排序 基數(shù)排序 歸并排序 快速排序 雙向掃描的快速排序 堆排序 面...