编写一些高效率的函数,只使用指向二叉树,二叉树的遍历算法例题

  编写一些高效率的函数,只使用指向二叉树,二叉树的遍历算法例题

  

题目一

 

  解法

  /** *二叉树节点的定义。*公共类TreeNode { * int val * TreeNode left * TreeNode right * TreeNode(){ } * TreeNode(int val){ this。val=val} * TreeNode(int val,TreeNode left,TreeNode right){ * this。val=val* this . left=left * this . right=right * } * } */class解决方案{ string buffer sb=new string buffer();ListString list=new ArrayList string();public ListString binary treepath(TreeNode root){ method(root);退货单;}公共空间方法(TreeNode root){ if(root==null)return;int t=sb。长度();某人(somebody的简写)追加(根。val);如果(根。left==空根。right==null){ list。添加(某人。tostring());} sb。追加("-");方法(根。左);方法(根。对);某人删除(t,sb。length());}}

题目二

 

  解法

  /** *二叉树节点的定义。*公共类TreeNode { * int val * TreeNode left * TreeNode right * TreeNode(){ } * TreeNode(int val){ this。val=val} * TreeNode(int val,TreeNode left,TreeNode right){ * this。val=val* this . left=left * this . right=right * } * } */class解{ int ans=0;public int sumOfLeftLeaves(TreeNode root){ method(root,false);返回ans}公共空间方法(TreeNode root,布尔标志){ if(root==null)return;如果(根。left==空根。right==null flag){ ans=root。val返回;}方法(root.left,true);方法(root.right,false);}}

题目三

 

  解法

  /*//节点。类节点的定义{公共int val公共链表结点子级;public Node(){ } public Node(int _ val){ val=_ val;} public Node(int _val,list Node _ children){ val=_ val;儿童=_儿童;}};*/class Solution { public int max depth(节点根){ if(root==null){ return 0;} int maxChildDepth=0;for(int I=0;iroot。孩子。size();I){ int child depth=max depth(root。孩子。get(I));maxChildDepth=math。max(maxChildDepth,子深度);}返回maxChildDepth 1;}}到此这篇关于剑指提供之爪哇算法习题精讲二叉树与英语字母表中第十四个字母叉树的文章就介绍到这了,更多相关爪哇二叉树内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: