112. 路径总和

112. 路径总和


题目链接:112. 路径总和

代码如下:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
 //思路:非递归后序遍历
class Solution {
   
public:
    bool hasPathSum(TreeNode* root, int targetSum) {
   
        vector<TreeNode*> sta;//用数组模拟栈
        TreeNode* p=root;
        TreeNode* r=nullptr;

        while(p||!sta.empty())
        {
   
            if(p)//保存,一直找其左子树
            {
   
                sta.push_back(p);
                p=p->left;
            }
            else
            {
   
                p=sta[sta.size()-1];
                if(p->right&&p->right!=r)
                {
   
                    p=p->right;
                }
                else
                {
   
                    p=sta[sta.size()-1];
                    
                    //p为叶子节点,此时数组中保存的都是根到该叶子节点的节点
                    if(p&&p->left==nullptr&&p->right==nullptr)
                    {
   
                        int sum=0;
                        for(int i=0;i<sta.size();i++)
                        {
   
                            sum+=sta[i]->val;
                        }    

                        //找到了这样的路径,直接返回即可
                        if(sum==targetSum)
                            return true;
                    }

                    sta.pop_back();//弹出栈顶元素
                    r=p;
                    p=nullptr;
                }
            }
        }
        //遍历了所有根到叶子结点的路径,没找到
        return false;
    }
};

相关推荐

  1. 112. 路径总和

    2024-01-19 10:18:01       35 阅读
  2. leetcode112.路径总和

    2024-01-19 10:18:01       19 阅读
  3. LeetCode112 路径总和

    2024-01-19 10:18:01       17 阅读
  4. 112.路经总和

    2024-01-19 10:18:01       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-19 10:18:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-19 10:18:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-19 10:18:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-19 10:18:01       18 阅读

热门阅读

  1. 【QA】Linux-CentOS-解决mysqlclient无法安装

    2024-01-19 10:18:01       37 阅读
  2. RabbitMQ交换机

    2024-01-19 10:18:01       31 阅读
  3. Git教程学习:08 Git别名

    2024-01-19 10:18:01       31 阅读
  4. P1162 填涂颜色【解析】-----深度优先搜索

    2024-01-19 10:18:01       31 阅读
  5. 程序员必备的面试技巧

    2024-01-19 10:18:01       39 阅读
  6. HTTP和HTTPS

    2024-01-19 10:18:01       32 阅读
  7. Springboot jar做成Centos中的服务

    2024-01-19 10:18:01       24 阅读