zoukankan      html  css  js  c++  java
  • Leetcode 671.二叉树中第二小的节点

    二叉树中第二小的节点

    给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值。 

    给出这样的一个二叉树,你需要输出所有节点中的第二小的值。如果第二小的值不存在的话,输出 -1

    思路

     1 class Solution {
     2     int min1;
     3     long ans = Long.MAX_VALUE;
     4 
     5     public void dfs(TreeNode root) {
     6         if (root != null) {
     7             if (min1 < root.val && root.val < ans) {
     8                 ans = root.val;
     9             } else if (min1 == root.val) {
    10                 dfs(root.left);
    11                 dfs(root.right);
    12             }
    13         }
    14     }
    15     public int findSecondMinimumValue(TreeNode root) {
    16         min1 = root.val;
    17         dfs(root);
    18         return ans < Long.MAX_VALUE ? (int) ans : -1;
    19     }
    20 }

  • 相关阅读:
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
    DS01-线性表
    c博客06-结构体&文件
    C博客作业05--指针
    123
    面向对象设计大作业
    购物车
    有理数类的设计
  • 原文地址:https://www.cnblogs.com/kexinxin/p/10394953.html
Copyright © 2011-2022 走看看