513.找树左下角的值

在这里插入图片描述
思路:
首先用队列将节点入队,每次出队时,先将该节点压入栈中,然后右孩子和左孩子一次入队,重复这个此操作直到队列为空,栈中元素最终按照层序从右到左逐层排列,所以最后一行最左边的值始终在栈的顶部。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
 int findBottomLeftValue(TreeNode* root) {
  stack<int> s;
  queue<TreeNode*> q;
  q.push(root);
  while (!q.empty())
  {
   TreeNode* p = q.front();
   s.push(p->val);
   q.pop();
   if (p->right) q.push(p->right);
   if (p->left) q.push(p->left);
  }
  return s.top();
 }
};

在这里插入图片描述

发布了90 篇原创文章 · 获赞 7 · 访问量 2176

猜你喜欢

转载自blog.csdn.net/weixin_43784305/article/details/103027869