一、複雜鏈表的複製:
注意事項:
要特別注意將新舊鏈表分開的步驟:首先設置一個指針指向current.next;然後將current的next指向指針的next;指針的next再指向current的next的next,最後將current指向current的next。畫圖更易理解。
二、最小的K個數:
注意事項:
注意冒泡算法內部的交換是a[j]和a[j + 1]比較交換,而不是a[i]和a[j]比較交換。
三、鏈表中環的入口結點:
注意事項:
麼的問題
四、數值的整數次方:
注意事項:
注意各特殊條件:base等於0,exponent等於0是一種情況;base不等於0,exponent等於0是一種情況;base等於0,exponent不等於0是一種情況;base不等於0,exponent大於0是一種情況;base不等於0,exponent小於0是一種情況;
五、和爲S的兩個數字:
注意事項:
麼的問題
六、和爲S的連續正數序列:
注意事項:
注意是正數序列,所以在使用雙指針時,low的初始值應該爲1而不是0。同時當low至high之間的數加起來和爲sum時,將low至high間的數字添加進鏈表2,並將鏈表2添加進鏈表1後,需要將high++;
七、第一個只出現一次的字符:
注意事項:
麼的問題
八、左旋轉字符串:
注意事項:
字符串轉數組方法:char[] charArr = str.toCharArray();
字符數組轉字符串方法:String str = new String(charArr);
九、二叉搜索樹的第k個結點:
注意事項:
雖然題目給的提示用棧,但用棧不太合適,感覺用List更爲適合。
十、從上往下打印二叉樹:
注意事項:
在從隊列中出元素時,首先要判斷該元素是否有左右子樹,然後再出隊列。
十一、二叉樹的鏡像:
注意事項:
問題不大
十二、對稱的二叉樹:
注意事項:
問題不大
十四、樹的子結構:
注意事項:
因爲判斷的是不是子結構,所以這也是在判斷是不是相等的兩棵樹的子程序中,root2 == null時返回true的原因。