当前位置: 代码迷 >> 综合 >> Amazon OA2准备——bst找最小路径
  详细解决方案

Amazon OA2准备——bst找最小路径

热度:1   发布时间:2023-12-17 03:13:40.0

更新

这道题我实际遇见了,还真是bst

题目中给的两个样例是

   10

  /    \

5    15

        7

      /    \

   3       10

  /        /   \

1        8   12


笔试的时候慌了一下,其实如上的题目一个while就解决了,我真的不知道自己在递归个什么劲儿。

顺便注意,只能写一个function。我之前写的算法是有问题的,我多给了一个参数。在笔试的时候我就自己卡在这个问题上了。

=====================================

先来看看bst定义.

二叉查找树英语:Binary Search Tree),也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:sorted binary tree),是指一棵空树或者具有下列性质的二叉树:

  1. 若任意节点的左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;
  2. 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  3. 任意节点的左、右子树也分别为二叉查找树。
  4. 没有键值相等的节点(英语:no duplicate nodes)。

小哥说是给出树和root,从root到leaves权值最小的路径。返回root到所有leave中的最短路径长度。权值指每个节点的value。


那不就是直接全部左边吗。。。

不过姑且还是写了一个。如果树真的是bst,我都无力吐槽了。


在我的假设中,可爱的小树长成这样。也不管什么平衡什么的了,是棵树就好了:

          1  
        /    \  
      2      3  
     /  \       \  
   4  5        6 

 /

20


	private static int FindShortestWay(node root, int route) {if(root!=null){route += root.val; FindShortestWay(root.left,route);FindShortestWay(root.right,route);if(root.left == null && root.right == null){if(min > route){min = route;}}}return min;}

对了,其实应该是要返回最小路径的,也就是说,应该要返回一个int。


纠结了一晚上这个问题,想找找其他人的面经里面对这道题的描述,也没有找到,所以这道题就让它随风吧。不如好好复习一下树的遍历。

想测试一下不如去leetcode刷一下这道题可能还比较有意义:Binary Tree Maximum Path Sum