题解 | #二叉搜索树的最近公共祖先#

二叉搜索树的最近公共祖先

https://www.nowcoder.com/practice/d9820119321945f588ed6a26f0a6991f

using System;
using System.Collections.Generic;

/*
public class TreeNode
{
    public int val;
    public TreeNode left;
    public TreeNode right;

    public TreeNode (int x)
    {
        val = x;
    }
}
*/

class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param root TreeNode类
     * @param p int整型
     * @param q int整型
     * @return int整型
     */
    public int lowestCommonAncestor (TreeNode root, int p, int q) {
        // write code here
        List<int> pList = new List<int>();
        List<int> qList = new List<int>();
        TreeNode t1 = root;
        while (t1.val != p) {
            pList.Add(t1.val);
            if (p < t1.val)
                t1 = t1.left;
            else
                t1 = t1.right;
        }
        pList.Add(t1.val);
        TreeNode t2 = root;
        while (t2.val != q) {
            qList.Add(t2.val);
            if (q < t2.val)
                t2 = t2.left;
            else
                t2 = t2.right;
        }
        qList.Add(t2.val);
        if (pList.Count > qList.Count) {
            for (int i = pList.Count - 1; i >= 0; --i) {
                for (int j = qList.Count - 1; j >= 0; --j) {
                    if (pList[i] == qList[j])
                        return pList[i];
                }
            }
        } else {
            for (int i = qList.Count - 1; i >= 0; --i) {
                for (int j = pList.Count - 1; j >= 0; --j) {
                    if (qList[i] == pList[j])
                        return pList[i];
                }
            }
        }

        return 0;
    }
}

#二叉搜索树的最近公共祖先#
全部评论

相关推荐

码农索隆:传音老登来也。 但是这个我不知道怎么回答,不仅仅传音吧,很多公司在候选人不第一时间接受offer或主动将报道时间延期时,都会再从池子里面捞人,直到l捞到满足公司所有要求的人。
秋招的第一个offer,...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务