假设二叉树用二叉链表存储,试编写算法,求二叉树的高度,基于二叉链表写出层序遍历二叉树的算法
题目一
解法
/** *二叉树节点的定义。*公共类TreeNode { * int val * TreeNode left * TreeNode right * TreeNode(int x){ val=x;} * } */class Solution { public boolean is balanced(TreeNode root){ if(root==null){ return true;} else {返回数学。ABS(方法(根。左)-方法(根。右))=1是平衡的(根。左)是平衡的(根。对);} }公共int方法(TreeNode root){ if(root==null){ return 0;} else {返回数学。max(方法(根。左),方法(根。右))1;} }}
题目二
解法
/** *二叉树节点的定义。*公共类TreeNode { * int val * TreeNode left * TreeNode right * TreeNode(int x){ val=x;} * } */class Solution { public boolean是对称的(TreeNode root){ if(root==null)返回真实的返回方法(root.left,root。对);}公共布尔值方法(TreeNode l,TreeNode r){ if(l==nullr==null)返回trueif(l==nullr==nulll.val!=r.val返回错误的返回方法(左,右)方法(左右,右左);}}
题目三
解法
/** *单链表的定义。*公共类ListNode { * int val * ListNode next * list node(int x){ val=x;} * } */class Solution { public ListNode delete node(ListNode head,int val){ ListNode temp=new ListNode(-1);temp . next=headListNode ans=temp while(temp . next!=null){ if(temp。下一个。val==val){ temp。next=温度。下一个。接下来;} else { temp=temp.next} }返回ans.next}}
题目四
解法
/** *单链表的定义。*公共类ListNode { * int val * ListNode next * list node(int x){ val=x;} * } */class Solution { public ListNode reverse list(ListNode head){ ListNode prev=null;ListNode curr=headwhile (curr!=null){ ListNode next=curr。接下来;curr . next=prev prev=curr curr=next } return prev } }到此这篇关于剑指提供之爪哇算法习题精讲二叉树与链表的文章就介绍到这了,更多相关爪哇二叉树内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。