題目描述:
給定乙個二叉搜尋樹的根節點 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。二叉樹總是有效的,每個節點的值都是整數,且不重複。...