leetcode 530 二叉搜尋樹的最小絕對值

2021-10-10 06:49:27 字數 918 閱讀 7957

題目:

思路一:

分析;由於二叉搜尋樹的特性,右子樹方面:2>3>1。其絕對值最小值在3-1和2-1 之間產生,而左子樹:1>4>5,絕對值最小值在1-4和4-5之間 產生,所以,根據中序遍歷的順序,將中序遍歷的結果放進陣列,然後前面的值減去後 面的,得到差值的最小值。

步驟:中序遍歷將節點放進陣列裡面;

從陣列開頭,相鄰位置相減,取差值的最小值作為返回值

class

solution

intgetminimumdifference

(treenode* root)

return nums;}}

;

思路二:遞迴優化

分析:不用將節點的值存在陣列裡面,在中序遍歷的時候直接得到差值的絕對值,關鍵在於如何將上乙個節點儲存下來:用乙個指標將訪問到的節點儲存下來

本**中 用乙個pre節點記錄一下cur節點的前乙個節點

//將前乙個節點儲存下來

inorder

(root-

>right);}

intgetminimumdifference

(treenode* root)

};

int

getminimumdifference

(treenode* root)

else

pre=cur;

cur=cur-

>right;}}

return result;

}

LeetCode 530 二叉搜尋樹的最小絕對差

給定乙個所有節點為非負值的二叉搜尋樹,求樹中任意兩節點的差的絕對值的最小值。示例 輸入 1 3 2輸出 1 解釋 最小絕對差為1,其中 2 和 1 的差的絕對值為 1 或者 2 和 3 注意 樹中至少有2個節點。主要是用來中序遍歷的方法 definition for a binary tree no...

LeetCode530 二叉搜尋樹的最小絕對差

題目 又是常見的bst,要利用bst的性質,即中序遍歷是有序遞增序列。法一 中序遍歷 1 class solution 10 11int getminimumdifference treenode root 18return min 19 2021 法二 優化後的中序遍歷,不開陣列,在遞迴過程中應用...

leetcode530 二叉樹的最小絕對差

題目非常簡單,之所以記錄一下是因為總是忽略中序遍歷的特性 排序二叉樹中序遍歷會得到乙個有序陣列。該特性很實用也很神奇,就像一顆滿二叉排序樹的根節點必然是對應有序陣列的中點一樣。該特性可以幫助我們更好的理解排序樹的結構。listre new linkedlist int min integer.max...