zoukankan      html  css  js  c++  java
  • [Leetcode] Binary Tree Paths, Solution

    Given a binary tree, return all root-to-leaf paths.
    For example, given the following binary tree:
       1
    /
    2 3

    5
    All root-to-leaf paths are:
    ["1->2->5", "1->3"]

    [Thought]
    这个主要就是实现题。对树进行深度遍历,在遍历的过程中保存访问节点,当遍历到叶节点的时候,打印出来路径即可。

    [Code]
    1:  class Solution {  
    2: public:
    3: vector<string> binaryTreePaths(TreeNode* root) {
    4: vector<string> paths;
    5: vector<int> nodes;
    6: getAllPaths(root, nodes, paths);
    7: return paths;
    8: }
    9: void getAllPaths(TreeNode* node, vector<int>& nodes,vector<string>& paths) {
    10: if(node == NULL) {
    11: return;
    12: }
    13: if(node->left== NULL && node->right == NULL) {
    14: stringstream ss;
    15: for(int i =0; i< nodes.size(); i++) {
    16: ss << nodes[i] << "->";
    17: }
    18: ss << node->val;
    19: paths.push_back(ss.str());
    20: return;
    21: }
    22: nodes.push_back(node->val);
    23: getAllPaths(node->left, nodes, paths);
    24: getAllPaths(node->right, nodes, paths);
    25: nodes.pop_back();
    26: }
    27: };

    Github: https://github.com/codingtmd/leetcode/blob/master/src/Binary%20Tree%20Paths.cpp

  • 相关阅读:
    欧拉定理证明&阶乘的逆元
    Tree POJ
    GCD
    java42
    java41
    java
    java40
    搭建两个网站的琐碎问题
    虚拟机从无到有,服务器从无到有的历程(在更)
    java39
  • 原文地址:https://www.cnblogs.com/codingtmd/p/5078835.html
Copyright © 2011-2022 走看看