日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[LC]783题 二叉搜索树结点最小距离(中序遍历)

發(fā)布時(shí)間:2024/10/8 编程问答 40 如意码农
生活随笔 收集整理的這篇文章主要介紹了 [LC]783题 二叉搜索树结点最小距离(中序遍历) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

①題目

給定一個(gè)二叉搜索樹的根結(jié)點(diǎn) root, 返回樹中任意兩節(jié)點(diǎn)的差的最小值。

示例:

輸入: root = [4,2,6,1,3,null,null]
輸出: 1
解釋:
注意,root是樹結(jié)點(diǎn)對象(TreeNode object),而不是數(shù)組。

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

4
             / \
            2 6
           / \
        1 3

最小的差值是 1, 它是節(jié)點(diǎn)1和節(jié)點(diǎn)2的差值, 也是節(jié)點(diǎn)3和節(jié)點(diǎn)2的差值。
注意:

二叉樹的大小范圍在 2 到 100。
二叉樹總是有效的,每個(gè)節(jié)點(diǎn)的值都是整數(shù),且不重復(fù)。

②思路

這個(gè)題跟530題很像,所以,只是在530題的基礎(chǔ)上,把計(jì)算res的那一行代碼中的絕對值函數(shù)去掉即可。

③代碼

 //第530題是返回任意兩節(jié)點(diǎn)的差的絕對值的最小值,這個(gè)題是沒有絕對值要求
class Solution {
TreeNode pre;
int res=Integer.MAX_VALUE; //res在17行的helper函數(shù)里計(jì)算完畢,在18行里返回。
public int minDiffInBST(TreeNode root) {
if(root==null) return 0;
helper(root);
return res;
} private void helper(TreeNode root){
if(root==null) return; // 直接返回,也就是退出遞歸中的此輪helper函數(shù)。
helper(root.left); //因?yàn)槭侵行虮闅v,所以,此處直接抵達(dá)BST的左下角
if(pre!=null)
res=Math.min(res,root.val-pre.val);
pre=root;
helper(root.right); }
}
//本題跟530題太像了。

④學(xué)到的東西

530題與本題783,最核心的地方在于第12到17行,

1、第12行,僅僅一個(gè)return,就跳出了本輪遞歸。

2、因?yàn)槭侵行虮闅v,所以先處理.left。如13行。

3、第16行,就是root傳遞給pre的時(shí)機(jī)。

總結(jié)

以上是生活随笔為你收集整理的[LC]783题 二叉搜索树结点最小距离(中序遍历)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。