zoukankan      html  css  js  c++  java
  • LeetCode——Binary Tree Paths

    Description:

    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"]

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public List<String> paths;
        public List<Integer> path;
        public List<String> binaryTreePaths(TreeNode root) {
            paths = new ArrayList<String>();
            path = new ArrayList<Integer>();
            getAllPath(root);
            
            return paths;
        }
        
        public void getAllPath(TreeNode node) {
            
        //       1
        //     /   
        //    2     3    ["1->2->5", "1->3"]
        //     
        //      5
        
            if(node == null) {
                return ;
            }
            path.add(node.val);
            if(node.left==null && node.right==null) {
                StringBuilder onePath = new StringBuilder();
                for(int i=0; i<path.size(); i++) {
                    if(i != 0) onePath.append("->");
                    onePath.append(path.get(i));
                }
                paths.add(onePath.toString());
            }
            getAllPath(node.left);
            getAllPath(node.right);
            path.remove(path.size() - 1);
            
        }
    }
     
  • 相关阅读:
    【leetcode】第一个只出现一次的字符
    【leetcode】0~n1中缺失的数字
    054696
    053695
    053694
    053693
    053692
    053691
    053690
    053689
  • 原文地址:https://www.cnblogs.com/wxisme/p/4842412.html
Copyright © 2011-2022 走看看