找树左下角的值-513

打印 上一主题 下一主题

主题 555|帖子 555|积分 1665

题目描述

给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
解题思路

这道题用条理遍历的方式来说是比力简单的,用递归的话如果我们看别人的精简代码很难看出其中隐藏的细节,这里递归遍历实在我们用到了回溯的头脑,我们直接采用前序遍历的方式(实在三种遍历方式都是一样的),界说一个max_depth作为参考值记录当前遍历子树的最大深度,如果我们遍历到了叶子节点而且其深度大于这个max_depth我们就可以进行赋值操纵,反之则不用,由于深度没有它大的话肯定不是末了一层的叶子节点,没有我们上一次遍历子树的条理高,就无需进行赋值操纵
代码实例

条理
  1. import java.util.*;
  2. class Solution {
  3.     public int findBottomLeftValue(TreeNode root) {
  4.         Deque<TreeNode> deque=new LinkedList<>();
  5.         deque.add(root);
  6.         List<Integer> result=new ArrayList<>();
  7.         // result.add(root.val);
  8.         while(!deque.isEmpty()){
  9.             int size=deque.size();
  10.             for(int i=0;i<size;i++){
  11.                 TreeNode temp=deque.pollFirst();
  12.                 result.add(temp.val);
  13.                 if(temp.right!=null){
  14.                     deque.addLast(temp.right);
  15.                 }
  16.                 if(temp.left!=null){
  17.                     deque.addLast(temp.left);
  18.                 }
  19.             }
  20.         }
  21.         return result.get(result.size()-1);
  22.     }
  23. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表