日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

236. Lowest Common Ancestor of a Binary Tree

發布時間:2023/11/27 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 236. Lowest Common Ancestor of a Binary Tree 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原題鏈接:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/
代碼實現如下:

import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;/*** Created by clearbug on 2018/2/26.*/
public class Solution {public static void main(String[] args) {Solution s = new Solution();}// 討論區一位高手的答案,不得不說:高手就是高手啊!public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if (root == null || root == p || root == q) return root;TreeNode left = lowestCommonAncestor(root.left, p, q);TreeNode right = lowestCommonAncestor(root.right, p, q);return left == null ? right : right == null ? left : root;}/*** 方法一:這是我自己想的方法,何其復雜啊!!!提交之后運行結果:StackOverFlowException** @param root* @param p* @param q* @return*/public TreeNode lowestCommonAncestor1(TreeNode root, TreeNode p, TreeNode q) {if (root == null || p == null || q == null) {return null;}Stack<TreeNode> pStack = new Stack<>();Stack<TreeNode> qStack = new Stack<>();if (!getNodePath(root, p, pStack)) {return null;}if (!getNodePath(root, q, qStack)) {return null;}Queue<TreeNode> pQueue = new LinkedList<>(pStack);Queue<TreeNode> qQueue = new LinkedList<>(qStack);TreeNode lca = null;while (!pQueue.isEmpty() && !qQueue.isEmpty()) {if (pQueue.peek() != qQueue.peek()) {break;}lca = pQueue.peek();pQueue.poll();qQueue.poll();}return lca;}private boolean getNodePath(TreeNode root, TreeNode target, Stack<TreeNode> stack) {if (root == target) {return true;}stack.push(root);if (root.left != null) {if (getNodePath(root.left, target, stack)) {return true;} else {stack.pop();}}if (root.right != null) {if (getNodePath(root.right, target, stack)) {return true;} else {stack.pop();}}return false;}
}

轉載于:https://www.cnblogs.com/optor/p/8645576.html

總結

以上是生活随笔為你收集整理的236. Lowest Common Ancestor of a Binary Tree的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。