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