https://leetcode.com/contest/weekly-contest-79/problems/binary-tree-pruning/ -- 814 from leetcode

tree traverse (post traverse) left right and root

the model

void traverse(node){
if(node.left!=null) traverse(node.left);
if(node.right!=null) traverse(node.right);
//do something, current node is the deep leaf(left or right)
}

another model

int traverse(node){
if(node.left!=null) l = traverse(node.left); // value is its left child
if(node.right!=null) r = traverse(node.right); // value of its right child
//do something, current node is the deep leaf(left or right)
return node.val;
}

This problem we use second model and check if the children are null(tag ==2 : two children are nulls)

/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public TreeNode pruneTree(TreeNode root) {
int val = traverse(root);
if(val == 0 && root.left==null && root.right==null) root=null;
return root;
}
int traverse(TreeNode node){//when for
//lright root
int tag = 0;
if(node.left!=null){
int l = traverse(node.left);//retur the vale of next layer(left child)
if(l==0) {
node.left = null;
tag ++;
} }else tag++;
if(node.right!= null){
int r = traverse(node.right);
if(r== 0) {
node.right = null;
tag ++;
}
}else tag ++;
//root
if(node.val==0 && tag==2)//remove this node
return 0;
else return 1;
}
}

ziji youdian cai(newbie) I only figured out one problem from the contest.

最新文章

  1. BigInger isProbablePrime
  2. PHP中设置时区方法小结
  3. Java程序员的日常 —— static的用法讲解实践
  4. android学习者优秀网址推荐
  5. Leetcode#109 Convert Sorted List to Binary Search Tree
  6. UIFontFamily
  7. excel 下载
  8. linux(centos 7)学习之 ~目录下的文件anaconda-ks.cfg
  9. spark推测执行的坑
  10. centos-1 nginx
  11. 背水一战 Windows 10 (108) - 通知(Tile): application tile 基础, secondary tile 基础
  12. Ubuntu 16.04安装下HTK--亲测ok
  13. 图形设计必备软件:CorelDRAW
  14. Yaml学习文档
  15. SCRUM 12.15
  16. J1850 Implement
  17. Getting started with new I/O (NIO)
  18. 2017-2018-2 《网络对抗技术》20155322 Exp6 信息搜集与漏洞扫描
  19. 「小程序JAVA实战」小程序的微信api菜单操作(67)
  20. 【cs231n】图像分类笔记

热门文章

  1. hdu2553 N皇后问题(dfs+回溯)
  2. python学习第二天a
  3. 查看sqlserver版本
  4. Nohup后台运行程序
  5. hbase数据库操作
  6. python 之 paramiko
  7. robotframe 学习笔记1
  8. 数据结构---Java---LinkedList
  9. 8597 石子划分问题 dpdp,只考虑第一次即可
  10. 性能测试工具Jmeter10-Jmeter集合点与关联