題目:
二叉搜尋樹中的兩個節點被錯誤地交換。
請在不改變其結構的情況下,恢復這棵樹。
理解題目:
意思就是說給的二叉搜尋樹中有兩個結點是被交換的,我們要做的就是把這兩個找到,然後對他們進行交換。
思路:二叉搜尋樹的中序遍歷是乙個遞增的序列,但是,因為被錯誤交換了兩個結點,所以這個中序序列有兩個值我們要將它找出來,然後將它們交換就可以。
子問題:如何得到中序序列
子問題:如何找到這兩個被錯誤交換的結點
子問題:如何在樹中交換兩個結點的值。
LeetCode 刻意練習03 移除元素
題目 引數列表給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回值 移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。思路 遍歷陣列,如果遇到不為val的值則將其賦值給陣列第i元素,並且i 否則繼續遍歷...
LeetCode刻意練習28 跳躍遊戲
題目 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。方法一 回溯法 有一組資料超時。遍歷每個元素,對於每個元素i,先跳最大的步數nums i 到達下乙個元素next。如果能夠跳出這個陣列 nums i i nums...
《刻意練習》5
不管是 還是體育等等領域,該領域中最傑出的人在青少年時期總是經過了漫長的練習才取得了如今的成績。並且投入的時間與取得的成績成正比。1 首先,它需要乙個已經得到合理發展的行業或領域,也就是說,在那一行業或領域之中,最傑出的從業者已達到一定程度的表現水平,使他們與其他剛剛進入該行業或領域的人們明顯地區分...