题目大意
https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/
从前序和中序序列构建一棵树
题目分析
递归即可,这里用了Arrays.copyOfRange方法,最开始没用明白,如果传入参数有误会抛出异常。代码实现还不够优雅,以后有时间再改改
https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/
从前序和中序序列构建一棵树
递归即可,这里用了Arrays.copyOfRange方法,最开始没用明白,如果传入参数有误会抛出异常。代码实现还不够优雅,以后有时间再改改
本文基本翻译了 http://kubernetes.io/docs/user-guide/services/#headless-services
当spec.clusterIP
为None时,你创建了一个headless services
,这样就需要自己做服务发现,k8s不会管理,因此也不会分配一个clusterIP,kube-proxy不会处理这个services,也不会做负载均衡,DNS怎样自动化配置取决于service是否有标签selectors
如果headless services定义了selectors,那么endpoints controller就会创建endpoints的记录,并且修改集群DNS的记录指向service后端的pods
如果headless services没有定义了selectors,endpoints controller不会创建endpoints记录
https://leetcode.com/problems/path-sum-iii/
让你输出二叉树中路径和为sum的路径个数,这里的“路径”指的是自上而下的路径就可以,路径的起点不一定是根节点,终点也不一定是叶子节点。
注意一条路径的起点和终点不一定是树根和叶子节点,helper方法完成了从当前节点向下的路径中所有的和为sum,因此对树的每个节点都执行一次helper方法,再求其总和就是答案。
https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/
“龙摆尾”式层次遍历二叉树
这种遍历方式需要在普通的层次遍历上加一些技巧,如下图:
在访问完第一层以后,要自右向左地访问第二层,但到第三层以后又要自左向右地访问,这种反序的思路很容易想到用栈。要用到两个栈,第一个栈存TreeNode,第二个栈存所处的层数,因为奇数和偶数层下边逻辑会不一样。首先向栈中放入root节点,然后遍历整个栈,遍历部分伪代码: