• 二叉树的所有路径


    九章答案

    // version 1: Divide Conquer
    public class Solution {
        /**
         * @param root the root of the binary tree
         * @return all root-to-leaf paths
         */
        public List<String> binaryTreePaths(TreeNode root) {
            List<String> paths = new ArrayList<>();
            if (root == null) {
                return paths;
            }
            
            List<String> leftPaths = binaryTreePaths(root.left);
            List<String> rightPaths = binaryTreePaths(root.right);
            for (String path : leftPaths) {
                paths.add(root.val + "->" + path);
            }
            for (String path : rightPaths) {
                paths.add(root.val + "->" + path);
            }
            
            // root is a leaf
            if (paths.size() == 0) {
                paths.add("" + root.val);
            }
            
            return paths;
        }
    }
    View Code

    我写的

    /**
     * Definition of TreeNode:
     * public class TreeNode {
     *     public int val;
     *     public TreeNode left, right;
     *     public TreeNode(int val) {
     *         this.val = val;
     *         this.left = this.right = null;
     *     }
     * }
     */
    public class Solution {
        /**
         * @param root the root of the binary tree
         * @return all root-to-leaf paths
         */
        public List<String> binaryTreePaths(TreeNode root) {
            // Write your code here
           
                 List<String> paths = new ArrayList<String>();
                 if(root == null) {
                     return paths;
                 }
                 //leaf
                 if(root.left == null && root.right == null) {
                     paths.add(root.val + "");//不能paths.add(root.val);要转换成string
                 }
                 List<String> leftpath = binaryTreePaths(root.left);
                 List<String> rightpath = binaryTreePaths(root.right);
                 
                 for(String path : leftpath) {
                     paths.add(root.val + "->" + path);
                 }
                 for(String path : rightpath) {
                     paths.add(root.val + "->" + path);
                 }
                 return paths;
        }
                 
                
        
    }
    View Code
  • 相关阅读:
    WebRTC视频分辨率设置
    WebRTC本地插入多个转发节点,模拟多节点转发,造成延迟
    Android SeekBar 自定义thumb,thumb旋转动画效果
    WebRTC从摄像头获取图片传入canvas
    WebRTC本地分享屏幕,录制屏幕
    Android 悬浮窗
    WebRTC与音频音量
    WebRTC概念介绍
    Android CameraX ImageAnalysis 获取视频帧
    Android 摄像头预览悬浮窗
  • 原文地址:https://www.cnblogs.com/yunyouhua/p/6720233.html
Copyright © 2020-2023  润新知