783 二叉搜尋樹節點最小距離

2021-10-09 04:54:10 字數 1040 閱讀 4100

題目描述:

給定乙個二叉搜尋樹的根節點 root,返回樹中任意兩節點的差的最小值。

示例:

輸入: root = [4,2,6,1,3,null,null]

輸出: 1

解釋:

注意,root是樹節點物件(treenode object),而不是陣列。

給定的樹 [4,2,6,1,3,null,null] 可表示為下圖:

最小的差值是 1, 它是節點1和節點2的差值, 也是節點3和節點2的差值。

注意:

二叉樹的大小範圍在 2 到 100。

二叉樹總是有效的,每個節點的值都是整數,且不重複。

方法1:

主要思路:

(1)因為是二叉搜尋樹,故使用中序遍歷時獲得的是公升序順序,可以在這個過程中儲存前乙個結點的值,直接求相鄰結點值中的最小值即可;

(2)注意儲存前乙個結點值的寫法,這裡要保證初始值不在樹的值的範圍內,然後跳過第乙個沒有前結點的點;

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

//中序遍歷

helper

(root-

>left,min_diff,pre_num);if

(pre_num!=0)

pre_num=root-

>val;

helper

(root-

>right,min_diff,pre_num);}

intmindiffinbst

(treenode* root)

};

783 二叉搜尋樹節點最小距離

給定乙個二叉搜尋樹的根結點 root,返回樹中任意兩節點的差的最小值。示例 輸入 root 4,2,6,1,3,null,null 輸出 1 解釋 注意,root是樹結點物件 treenode object 而不是陣列。給定的樹 4,2,6,1,3,null,null 可表示為下圖 4 2 6 1 ...

783 二叉搜尋樹節點最小距離

class solution 中序遍歷 在遍歷每乙個節點的時候,儲存上乙個遍歷的節點,然後計算差值 由於是中序遍歷,遍歷的順序是從小到大,因此root.val prev.val始終大於0 mindiffinbst root.left if prev null prev root mindiffinb...

二叉搜尋樹節點最小距離(C )

題目描述 給定乙個二叉搜尋樹的根節點root,返回樹中任意兩節點的差的最小值。示例 輸入 root 4,2,6,1,3,null,null 輸出 1 解釋 注意,root是根節點物件 treenode 而不是陣列。注意 二叉樹的大小範圍在2到100。二叉樹總是有效的,每個節點的值都是整數,且不重複。...