随笔分类 -  LeetCode

摘要:class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { //递归边界判断 if(root == null || root == p || root == q) ret 阅读全文
posted @ 2020-10-27 17:03 peanut_zh 阅读(79) 评论(0) 推荐(0)
摘要:class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { //root节点的值 大于p、q俩个节点,说明公共祖先在根节点的左侧 if(root.val > p.val 阅读全文
posted @ 2020-10-27 16:21 peanut_zh 阅读(80) 评论(0) 推荐(0)
摘要://迭代法 class Solution { //定义一个变量,用于返回第K小的元素 int res = 0; //定义计数变量 int count = 0; public int kthSmallest(TreeNode root, int k) { search(root,k); return 阅读全文
posted @ 2020-10-27 01:18 peanut_zh 阅读(49) 评论(0) 推荐(0)
摘要://根据根节点的值 与边界的值 进行比较 可得出 // node.val > high,那么修剪后的二叉树必定出现在节点的左边。 // node.val < low,那么修剪后的二叉树出现在节点的右边 // 否则,修剪树的两边。 class Solution { public TreeNode tr 阅读全文
posted @ 2020-10-26 23:38 peanut_zh 阅读(99) 评论(0) 推荐(0)
摘要:下面的俩张图是 LeetCode上的题解https://leetcode-cn.com/problems/binary-tree-inorder-traversal/solution/die-dai-fa-by-jason-2/ 我根据思路用Java做了实现,放在了最后。 PS:在学习的过程中,各路 阅读全文
posted @ 2020-10-26 23:17 peanut_zh 阅读(112) 评论(0) 推荐(0)
摘要:class Solution { public List<Integer> postorderTraversal(TreeNode root) { //一般解法,前序遍历后,翻转下结果集,注意下 与前序遍历的进栈顺序不一样 //(前序) 根左右 --> 变为 根右左 --> 翻转 左右根 (后续) 阅读全文
posted @ 2020-10-26 22:24 peanut_zh 阅读(64) 评论(0) 推荐(0)
摘要:二叉树的前序遍历(迭代法) 1 class Solution { 2 public List<Integer> preorderTraversal(TreeNode root) { 3 //前序遍历非递归法需要借助一个栈 4 Stack<TreeNode> stack = new Stack<>() 阅读全文
posted @ 2020-10-26 21:50 peanut_zh 阅读(87) 评论(0) 推荐(0)